njSetCurrentMotion Japanese
|INDEX|
Set parameters of the node motion function.

Syntax

#include <Ninja.h>
void  njSetCurrentMotion(NJS_MOTION *motion, Float frame );
NJS_MOTION  *motion
Float       frame

Arguments

motion
Pointer to motion structure
frame
Frame number

Return Value

None

Error

None

Description

Set motion parameters at each node.

Usage Example

#include <NINJA.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 );
}

...........

Remark

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.

Related Items

njMotionTransform
njMotionTransformZXY
njMotionTranslate
njMotionRotateXYZ
njMotionRotateZXY
njMotionScale
njGetMotionTranslate
njGetMotionRotate
njGetMotionScale
njSetNextMotionNode

njSetCurrentMotion
|INDEX|

Copyright SEGA ENTERPRISES, LTD., 1997