/**	@lua	setParent
	@text	Attach the anchor to a transform.
	
	@in		MOAICameraAnchor2D self
	@opt	MOAINode parent
	@out	nil
*/
int MOAICameraAnchor2D::_setParent ( lua_State* L ) {
	MOAI_LUA_SETUP ( MOAICameraAnchor2D, "U" )
	
	MOAINode* parent = state.GetLuaObject < MOAINode >( 2, true );
	self->SetAttrLink ( PACK_ATTR ( MOAICameraAnchor2D, INHERIT_LOC ), parent, PACK_ATTR ( MOAITransformBase, TRANSFORM_TRAIT ));
	
	return 0;
}
Exemple #2
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;
}
Exemple #3
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;
}