# Ninjaライブラリ

## 3Dバッファ構造体

## NJS_CLIP_BUF共用体

［定義］
  クリップ・作業領域共用体

［記述］

      typedef union {
      	Uint32	work;	/* 作業領域		*/
      	Uint32	clip;	/* クリップフラグ		*/
      } NJS_CLIP_BUF;

## NJS_VERTEX_BUF構造体

［定義］
  モデル計算時の中間頂点バッファ格納用構造体

［記述］

      typedef struct {
      	NJS_CLIP_BUF	a;		/* ワーク	*/
      	Float		sx,sy;		/* スクリーン・ポイント（透視変換後の座標値）*/
      	Float		oow;		/* 1/w値	*/
      	NJS_POINT3	point;		/* 頂点データ（３D座標）*/
      	Uint32		reserve;	/* 予約（クリップ）	*/
      	Float		u,v;		/* UVデータ		*/
      	Float		inten[2];	/* 輝度データ	*/
      	NJS_VECTOR	vector;		/* 法線ベクトルデータ	*/
      	Uint32		flag;		/* フラグ	*/
      } NJS_VERTEX_BUF;

## NJS_VERTEX_BUF2構造体

［定義］
  モデル計算時の中間頂点バッファ格納用構造体

［記述］

      typedef struct {
      	NJS_CLIP_BUF	a;		/* ワーク	*/
      	Float		sx,sy;		/* スクリーン・ポイント（透視変換後の座標値）	*/
      	Float		oow;		/* 1/w値	*/
      	NJS_POINT3	point;		/* 頂点データ（３D座標）	*/
      	Uint32		reserve;	/* 予約（クリップ）	*/
      	NJS_ARGB	col;		/* 頂点カラーデータ	*/
      	NJS_VECTOR	vector;		/* 法線ベクトルデータ	*/
      	Uint32		flag;		/* フラグ		*/
      } NJS_VERTEX_BUF2;

## NJS_VERTEX_BUF0構造体

［定義］
  モデル計算時の中間頂点バッファ格納用構造体

［記述］

      typedef struct {
      	NJS_CLIP_BUF	a;		/* ワーク	*/
      	Float		sx,sy;		/* スクリーン・ポイント（透視変換後の座標値）	*/
      	Float		oow;		/* 1/w値	*/
      	NJS_POINT3	point;		/* 頂点データ（３D座標）	*/
      	Uint32		reserve;	/* 予約（クリップ）	*/
      	Float		u,v;		/* UVデータ	*/
      	Float		inten[2];	/* 輝度データ	*/
      	NJS_VECTOR	vector;		/* 法線ベクトルデータ	*/
      	Uint32		flag;		/* フラグ	*/
      } NJS_VERTEX_BUF_0;

## NJS_VERTEX_BUF_1構造体

［定義］
  モデル計算時の中間頂点バッファ格納用構造体

［記述］

      typedef struct {
      	NJS_CLIP_BUF	a;		/* ワーク	*/
      	Float		sx,sy;		/* スクリーン・ポイント（透視変換後の座標値）	*/
      	Float		oow;		/* 1/w値	*/
      	NJS_POINT3	point;		/* 頂点データ（３D座標）	*/
      	Uint32		reserve;	/* 予約（クリップ）	*/
      	NJS_ARGB	col;		/* 頂点カラーデータ	*/
      	NJS_VECTOR	vector;		/* 法線ベクトルデータ	*/
      	Uint32		flag;		/* フラグ	*/
      } NJS_VERTEX_BUF_1;

## NJS_VERTEX_BUF_3構造体

［定義］
  モデル計算時の中間頂点バッファ格納用構造体

［記述］

      typedef struct {
      	NJS_CLIP_BUF	a;		/* ワーク	*/
      	Float		sx,sy;		/* スクリーン・ポイント（透視変換後の座標値）	*/
      	Float		oow;		/* 1/w値	*/
      	Float		u,v;		/* UVデータ	*/
      	Uint32		col[2];		/* 頂点カラーデータ	*/
      	NJS_POINT3	point;		/* 頂点データ（３D座標）	*/
      	NJS_VECTOR	vector;		/* 法線ベクトルデータ	*/
      	Uint32		flag;		/* フラグ	*/
      	Uint32		reserve;	/* 予約（クリップ）	*/
      } NJS_VERTEX_BUF_3;

## NJS_VERTEX_BUF_7構造体

［定義］
  モデル計算時の中間頂点バッファ格納用構造体

［記述］

      typedef struct {
      	NJS_CLIP_BUF	a;		/* ワーク	*/
      	Float		sx,sy;		/* スクリーン・ポイント（透視変換後の座標値）	*/
      	Float		oow;		/* 1/w値	*/
      	NJS_POINT3	point;		/* 頂点データ（３D座標）	*/
      	Uint32		reserve;	/* 予約（クリップ）	*/
      	Float		u,v;		/* UVデータ		*/
      	Float		inten[2];	/* 輝度データ		*/
      	NJS_VECTOR	vector;		/* 法線ベクトルデータ	*/
      	Uint32		flag;		/* フラグ	*/
      } NJS_VERTEX_BUF_7;

## NJS_VERTEX_BUF_X構造体

［定義］
  モデル計算時の中間頂点バッファ格納用構造体

［記述］

      typedef struct {
      	NJS_VECTOR	vector;		/* 法線ベクトルデータ	*/
      	Uint32		clip;		/* クリップ		*/
      	Float		sx,sy;		/* スクリーン・ポイント（透視変換後の座標値）	*/
      	Float		oow;		/* 1/w値	*/
      	Float		inten;		/* 輝度データ	*/
      } NJS_VERTEX_BUF_X;