typedef struct { Sint32 *vlist; /* 頂点チャンクリスト */ Sint16 *plist; /* ポリゴンチャンクリスト */ NJS_POINT3 center; /* モデルの中心 */ Float r; /* モデルの半径 */ } NJS_CNK_MODEL;
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;
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;
typedef struct { Float x; /* 透視変換後のX座標 */ Float y; /* 透視変換後のY座標 */ Float ooz; /* 1 / z 値 */ Float inten; /* intensity値 */ } NJS_CNK_EASY_BUF;
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;
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;