Ninja Library - Motion Function

njSetNextMotionNode

Updates node

FORMAT

void njSetNextMotionNode( void )

PARAMETER

None

RETURN

None

DESCRIPTION

Updates node. Please do not perform setting at njMotionTransform() and njMotionTransformZXY() functions.

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

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

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