/** @name transformUV @text Apply the given MOAITransform to all the uv coordinates in the deck. @in MOAIGfxQuadDeck2D self @in MOAITransform transform @out nil */ int MOAIGfxQuadDeck2D::_transformUV ( lua_State* L ) { MOAI_LUA_SETUP ( MOAIGfxQuadDeck2D, "UU" ) MOAITransform* transform = state.GetLuaObject < MOAITransform >( 2, true ); if ( transform ) { transform->ForceUpdate (); self->TransformUV ( transform->GetLocalToWorldMtx ()); } return 0; }
int GIIHelper::_setWorldLoc( lua_State *L ){ MOAILuaState state (L); if ( !state.CheckParams ( 1, "UN" )) return 0; MOAITransform* dst = state.GetLuaObject< MOAITransform >(1, true); float x = state.GetValue< float >( 2, 0.0f ); float y = state.GetValue< float >( 3, 0.0f ); float z = state.GetValue< float >( 4, 0.0f ); ZLVec3D loc; loc.Init( x, y, z ); const ZLAffine3D* inherit = dst->GetLinkedValue < ZLAffine3D* >( PACK_ATTR ( MOAITransformBase, MOAITransformBase::INHERIT_TRANSFORM ), 0 ); if( inherit ) { ZLAffine3D inverse; inverse.Inverse( *inherit ); inverse.Transform( loc ); } dst->SetLoc( loc ); dst->ScheduleUpdate(); return 0; }
int GIIHelper::_copyWorldTransform( lua_State *L ){ ZLAffine3D tmp; ZLAffine3D tmp1; float rx,ry,rz; MOAILuaState state (L); if ( !state.CheckParams ( 1, "UU" )) return 0; MOAITransform* src = state.GetLuaObject< MOAITransform >(1, true); MOAITransform* dst = state.GetLuaObject< MOAITransform >(2, true); const ZLAffine3D& srcMtx = src->GetLocalToWorldMtx (); const ZLAffine3D* inherit = dst->GetLinkedValue < ZLAffine3D* >( PACK_ATTR ( MOAITransformBase, MOAITransformBase::INHERIT_TRANSFORM ), 0 ); tmp.Init( src->GetLocalToWorldMtx() ); if( inherit ) { tmp1.Inverse( *inherit ); tmp.Append( tmp1 ); } ZLVec3D loc = tmp.GetTranslation(); ZLVec3D scale = tmp.GetStretch(); dst->SetLoc( loc ); dst->SetScl( scale ); rz = tmp.GetRot(); dst->SetRot( 0, 0, rz ); dst->ScheduleUpdate(); return 0; }