//----------------------------------------------------------------// void MOAIAnim::Apply ( float t0, float t1 ) { if ( t0 == t1 ) { this->Apply ( t0 ); return; } MOAIAttrOp attrOp; u32 total = this->mLinks.Size (); for ( u32 i = 0; i < total; ++i ) { MOAIAnimLink& link = this->mLinks [ i ]; MOAIAnimCurveBase* curve = link.mCurve; MOAINode* target = link.mTarget; if ( curve && target ) { if ( link.mRelative ) { curve->GetDelta ( attrOp, t0, t1 ); target->ApplyAttrOp ( link.mAttrID, attrOp, MOAIAttrOp::ADD ); } else { curve->GetValue ( attrOp, t1 ); target->ApplyAttrOp ( link.mAttrID, attrOp, MOAIAttrOp::SET ); } target->ScheduleUpdate (); } } }
//----------------------------------------------------------------// void MOAIAnim::Apply ( float t0, float t1 ) { if ( t0 == t1 ) { this->Apply ( t0 ); return; } MOAIAttrOp adder; u32 total = this->mLinks.Size (); for ( u32 i = 0; i < total; ++i ) { MOAIAnimLink& link = this->mLinks [ i ]; MOAIAnimCurve* curve = link.mCurve; MOAINode* target = link.mTarget; if ( curve && target ) { if ( link.mRelative ) { float value = curve->GetFloatDelta ( t0, t1 ); adder.SetValue ( value ); target->ApplyAttrOp ( link.mAttrID, adder, MOAIAttrOp::ADD ); } else { float value = curve->GetFloatValue ( t1 ); target->SetAttributeValue < float >( link.mAttrID, value ); } target->ScheduleUpdate (); } } }
//----------------------------------------------------------------// void MOAIAnim::Apply ( float t ) { MOAIAttrOp attrOp; u32 total = this->mLinks.Size (); for ( u32 i = 0; i < total; ++i ) { MOAIAnimLink& link = this->mLinks [ i ]; MOAIAnimCurveBase* curve = link.mCurve; MOAINode* target = link.mTarget; if ( curve && target ) { if ( !link.mRelative ) { curve->GetValue ( attrOp, t ); target->ApplyAttrOp ( link.mAttrID, attrOp, MOAIAttrOp::SET ); } target->ScheduleUpdate (); } } }