예제 #1
0
 template <class Functor> bool templatedPropertyHolds(const TimeType&t, const Functor &f)const{
     DurationType timeSinceUpdate=t-lastUpdateTime();
     if (timeSinceUpdate<mFadeTime) {
         return f(mValuePast.value())&&f(mValuePresent.value());
     }else {
         return f(mValuePresent.value());
     }
 }
예제 #2
0
 Value extrapolate(const TimeType&t) const {
     DurationType timeSinceUpdate=t-lastUpdateTime();
     if (mFadeTime<timeSinceUpdate) {
         return mValuePresent.extrapolate(t);
     }else{
         return mValuePast.extrapolate(t)
             .blend(mValuePresent.extrapolate(t),
                    timeSinceUpdate/mFadeTime);
     }
 }
예제 #3
0
 Value extrapolate(const TimeType&t) const
 {
     DurationType timeSinceUpdate = std::max(DurationType::zero(),t-lastUpdateTime());
     if (mFadeTime<=timeSinceUpdate) {
         return mValuePresent.extrapolate(t);
     }else{
         return mValuePast.extrapolate(t)
             .blend(mValuePresent.extrapolate(t),
                    (float32)(timeSinceUpdate/mFadeTime));
     }
 }
예제 #4
0
    ExtrapolatorBase<Value, TimeType>& resetValue(const TimeType&t, const Value&l) {
	mValuePresent.updateValue(t,l);
	mValuePast = mValuePresent;
	return *this;
    }
예제 #5
0
 ExtrapolatorBase<Value, TimeType>& updateValue(const TimeType&t, const Value&l) {
     mValuePast=TemporalValueType(t,extrapolate(t));
     mValuePresent.updateValue(t,l);
     return *this;
 }
예제 #6
0
 TimeType lastUpdateTime()const{
     return mValuePresent.time();
 }
예제 #7
0
 const Value& lastValue() const {
     return mValuePresent.value();
 }