Ninja Library - Motion Function

njSetCurrentMotion

Sets motion parameters

FORMAT

void njSetCurrentMotion( *motion, frame )
NJS_MOTION *motion
Float frame

PARAMETER

 *motion   Pointer to motion structure 
 frame   Frame number 

RETURN

None

DESCRIPTION

Sets motion parameters at each node.

EXAMPLE

#include <Shinobi.h>
#define OBJECT  object_sample
#define MOTION  motion_sample
#define LINEAR  0
#define SPLINE  1
extern NJS_MOTION MOTION[];
extern NJS_OBJECT OBJECT[];
Float ff = 0.f;
Int spline_flg = SPLINE;
	:
Sint32 njUserMain(void)
{
 	:
 njSetCurrentMotion(MOTION, ff );
 PushPopMotion( OBJECT );
 ff+=0.2f;
 if( ff >= (MOTION->nbFrame-1) ) ff=0.f;
 	:
}
PushPopMotion(NJS_OBJECT *obj)
{
 njPushMatrix( NULL );
 /* Execute motion function */
 njMotionTranslate( NULL, obj, spline_flg );
 njMotionRotateXYZ( NULL, obj, spline_flg );
 njMotionScale( NULL, obj, spline_flg );
 njSetNextMotionNode();
 /* Draw picture of model */
 if( obj->model != NULL )
  njDrawModel( obj->model );
 
 if( obj->child != NULL )
  PushPopMotion( (NJS_OBJECT*)obj->child );
 
 njPopMatrix( 1 );
 if( obj->sibling != NULL )
  PushPopMotion( (NJS_OBJECT*)obj->sibling );
}
	:

NOTE

This function is used as one of the functions for navigating the parent-child hierarchy (push/pop). These functions (motion of each node) are similar, with exception of the 3D control, to the njAction() and njDrawMotion() groups.

REFERENCE

njMotionTransform()
njMotionTransformZXY()
njMotionTranslate()
njMotionRotateXYZ()
njMotionRotateZXY()
njMotionScale()
njGetMotionTranslate()
njGetMotionRotate()
njGetMotionScale()
njSetNextMotionNode()

njSetCurrentMotion
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998,1999