Ninjaライブラリ - モーション関数

njMotionRotateXYZ

ノード・モーション関数(回転)

書式

void njMotionRotateXYZ( *m, *obj, spline_flag ) 
NJS_MATRIX *m 
NJS_OBJECT *obj 
Int spline_flag 

引数

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

戻り値

なし

解説

ノード毎の回転モーションを与えられたマトリクスに反映させます。 この関数は、フレーム・モーション等の情報を得るために、使用前にnjSetCurrentMotion関数を呼ぶこと、また必要であれば(階層構造中であれば)使用後にノード情報を更新するためにnjSetNextMotionNode関数を呼ぶ必要があります(用例参照)。

用例

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 );
 /* モーション関数の実行 */
 njMotionTranslate( NULL, obj, spline_flg );
 njMotionRotateXYZ( NULL, obj, spline_flg );
 njMotionScale( NULL, obj, spline_flg );
 njSetNextMotionNode();
 /* モデルの描画 */
 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()
njMotionTransformZXY()
njMotionTranslate()
njMotionRotateZXY()
njMotionScale()
njGetMotionTranslate()
njGetMotionRotate()
njGetMotionScale()
njSetNextMotionNode()

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