# Ninjaライブラリ

## チャンク構造体

## NJS_CNK_MODEL構造体

［定義］
  チャンクモデルを設定する構造体

［記述］

      typedef struct {
      	Sint32		*vlist;		/* 頂点チャンクリスト	*/
      	Sint16		*plist;		/* ポリゴンチャンクリスト	*/
      	NJS_POINT3      center;		/* モデルの中心		*/
      	Float		r;		/* モデルの半径		*/
      } NJS_CNK_MODEL;

## NJS_CNK_OBJECT構造体

［定義］
  チャンクオブジェクトを設定する構造体

［記述］

      typedef struct cnkobj {
      	Uint32          evalflags;  /* マトリックス演算評価フラグ	*/
      	NJS_CNK_MODEL   *model;     /* チャンクモデルポインタ		*/
      	Float           pos[3];     /* 移動量	*/
      	Angle           ang[3];     /* 回転量	*/
      	Float           scl[3];     /* スケール		*/
      	struct cnkobj   *child;     /* 子供へのポインタ		*/
      	struct cnkobj   *sibling;   /* 兄弟へのポインタ		*/
      } NJS_CNK_OBJECT;

## NJS_CNK_VERTEX_BUF構造体

［定義］
  チャンクモデル用頂点バッファ構造体

［記述］

      typedef	struct	{
      	Sint32		clip;	/* クリップフラグ	*/
      	Float		sx;	/* 透視変換後のX座標	*/
      	Float		sy;	/* 透視変換後のY座標	*/
      	Float		ooz;	/* 1 / z 値	*/
      	NJS_POINT3	p;	/* 3D上の頂点座標	*/
      	Uint32		dmy1;	/* ダミー	*/
      	Sint32		vtype;	/* 法線タイプ	*/
      	NJS_VECTOR	v;	/* 法線ベクトル		*/
      	union {
      		Uint32		argb[2];	/* パックカラー		*/
      		Float		inten[2];	/* intensity値		*/
      	} col;					/* カラー共用体	*/
      	Sint32		NinjaFlag;	/* Ninjaフラグ		*/
      	Sint32		UserFlag;	/* ユーザフラグ		*/
      } NJS_CNK_VERTEX_BUF;

## NJS_CNK_EASY_BUF構造体

［定義］
  チャンクEASYモデル用頂点バッファ構造体

［記述］

      typedef	struct	{
      	Float	x;	/* 透視変換後のX座標	*/
      	Float	y;	/* 透視変換後のY座標	*/
      	Float	ooz;	/* 1 / z 値		*/
      	Float	inten;	/* intensity値		*/
      } NJS_CNK_EASY_BUF;

## NJS_CNK_SIMPLE構造体

［定義］
  チャンクSIMPLEモデル用頂点バッファ構造体

［記述］

      typedef	struct	{
      	Float	z;	/* 3D上のZ座標		*/
      	Float	spec;	/* Specular値		*/
      	Float	x;	/* 透視変換後のX座標	*/
      	Float	y;	/* 透視変換後のY座標	*/
      	Float	ooz;	/* 1 / z 値		*/
      	Float	inten;	/* Intensity値		*/
      	Float	nx;	/* 法線 X		*/
      	Float	ny;	/* 法線 Y		*/
      } NJS_CNK_SIMPLE_BUF;

## NJS_CNK_EASYMULTI_BUF構造体

［定義］
  チャンクEASYMULTIモデル用頂点バッファ構造体

［記述］

      typedef	struct	{
      	Float	z;	/* 3D上のZ座標		*/
      	Float	x;	/* 透視変換後のX座標	*/
      	Float	y;	/* 透視変換後のY座標	*/
      	Float	ooz;	/* 1 / z 値	*/
      	Float	r;	/* 赤		*/
      	Float	g;	/* 緑		*/
      	Float	b;	/* 青		*/
      	Float	a;	/* アルファ	*/
      } NJS_CNK_EASYMULTI_BUF;