njMotionTransformZXY
ノード・モーション関数(ZXY回転用)。

書 式

#include <Ninja.h>
void    njMotionTransformZXY( NJS_MATRIX *m, NJS_OBJECT *obj, Int spline_flag );
NJS_MATRIX  *m
NJS_OBJECT  *obj
Int         spline_flag

引 数

m
マトリクス構造体へのポインタ
obj
オブジェクト構造体へのポインタ
spline_flag
スプライン属性フラグ(0:リニア、1:スプライン)

返 値

なし

エラー

なし

機 能

ノード毎のモーション(移動・回転<ZXY型>・スケール)を与えられたマトリクスに反映させます。
この関数は、フレーム・モーション等の情報を得るために、使用前にnjSetCurrentMotion関数を呼ぶことが必要となります(用例参照)。

用 例

#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 );

  /* モーション関数の実行 */
  njMotionTransformZXY( NULL, obj, spline_flg );

  /* モデルの描画 */
  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 );
}

...........

備 考

この関数は親子階層をたどる(プッシュ・ポップ)関数中で使用するための関数です。
これらの(ノード毎のモーション)関数は、3Dの制御部を除けばnjAction、njDrawMotion類と同様です。

関 連

njSetCurrentMotion
njMotionTransform
njMotionTranslate
njMotionRotateXYZ
njMotionRotateZXY
njMotionScale
njGetMotionTranslate
njGetMotionRotate
njGetMotionScale
njSetNextMotionNode

njMotionTransformZXY

Copyright SEGA ENTERPRISES, LTD., 1998