nd関数群リファレンス


ndGenInstance

関数名
ndGenInstance
構文
NDD_INSTANCE *ndGenInstance(NDD_INSTANCE *parent, u16 type, u16 prio, int gid);
説明
インスタンス構造体を作成して、リンクをつなぐ。
パラメータ
NDD_INSTANCE *parent;
親インスタンスのポインタ
u16 type;
インスタンスタイプ。
u16 prio;
プライオリティコード。表示インスタンスの評価順に影響します。
type によって指定出来る範囲が決まっています。
int gid;
インスタンスのグループID。
戻り値
NDD_INSTANCE *;
生成したインスタンスポインタ。
注意
インスタンスを作成します。タイプによって特性が決定されます。

ndChangePriority

関数名
ndChangePriority
構文
u16 ndChangePriority(NDD_INSTANCE *isp, u16 newprio);
説明
インスタンス一つのプライオリティを変更します。
パラメータ
NDD_INSTANCE *isp;
インスタンスポインタ。
u16 newprio;
新しいプライオリティ値。
戻り値
u16;
古いプライオリティ値
注意
指定したプライオリティの最上位にリンクします。

ndChangeParent

関数名
ndChangeParent
構文
NDD_INSTANCE ndChangeParent(NDD_INSTANCE *isp, NDD_INSTANCE *newparent);
説明
インスタンスの親を変更します。
パラメータ
NDD_INSTANCE *isp;
対象のインスタンスポインタ。
NDD_INSTANCE *newparent;
新しい親インスタンスのポインタ。
戻り値
NDD_INSTANCE *;
直前まで親だったインスタンス。
注意
newparent は、NULL であってはいけません。

ndDeleteInstanceGID

関数名
ndDeleteInstanceGID
構文
void ndDeleteInstanceGID(NDD_INSTANCE *isp, int type, int gid, int mask);
説明
 type と gid と mask によって指定された、パラメータに一致するインスタンスを削除します。

 実際には、[TYPE] == type で [GID] & mask == gid にヒットするものが削除 の対象になります。ただし、type に -1 を指定すると type のチェックは 行ないません。

 isp の子、全てに対して評価を行ないます。また、親が検索にヒットした場合、以下の子は、無条件で削除します。

パラメータ
NDD_INSTANCE *isp;
int type;
int gid;
int mask;
注意
注意)インスタンスコールバック内では、使用できません。

ndInit

関数名
ndInit
構文
void ndInit(void);
説明
モジュールの初期化
注意
'nd' 全般のAPIの使用を始める前に必ず呼ぶ必要があります。 カレントのシーンを用意します。シーンの設定がなくても、オブジェクトを 表示する土台は用意されます。

ndEntryAnimation

関数名
ndEntryAnimation
構文
NDD_INSTANCE *ndEntryAnimation(NDD_INSTANCE *parent, int animno, int id, NDD_INSTANCE *tarinst);
説明
アニメーション参照テーブルからタイムキーパーインスタンスを一つと チャンネル数分のアニメーションインスタンスを作成する。
パラメータ
NDD_INSTANCE *parent;
親インスタンスのポインタ
int animno;
アニメーション番号
int id;
インスタンスID
NDD_INSTANCE *tarinst;
アニメーションをアタッチするインスタンスポインタ
戻り値
NDD_INSTANCE *;
アニメーションタイムキーパーインスタンスのポインタ
注意
注意)インスタンスコールバック内では、使用できません。

ndEntryAnimationRaw

関数名
ndEntryAnimationRaw
構文
NDD_INSTANCE *ndEntryAnimationRaw(NDD_INSTANCE *parent, NDR_ANIM *anp, int gid, NDD_INSTANCE *tarinst);
説明
アニメーション参照テーブルからタイムキーパーインスタンスを一つとチャンネル数分のアニメーションインスタンスを作成する。
パラメータ
NDD_INSTANCE *parent;
親インスタンスのポインタ
NDR_ANIM *anp;
アニメーション参照テーブルへのポインタ
int gid;
インスタンスグループID
NDD_INSTANCE *tarinst;
アニメーションをアタッチするインスタンスポインタ
戻り値
NDD_INSTANCE *;
アニメーションタイムキーパーインスタンスのポインタ
注意
注意)インスタンスコールバック内では、使用できません。

ndEntryObject

関数名
ndEntryObject
構文
NDD_INSTANCE *ndEntryObject(NDD_INSTANCE *parent, int objno, int shapeno, int animno, int gid, int flag);
説明
オブジェクト参照テーブルからインスタンスを一つ作成する。
パラメータ
NDD_INSTANCE *parent;
親インスタンスのポインタ。NULL なら、オブジェクトのルートにぶら下がります。
int objno;
オブジェクト参照テーブルのインデックス。
int shapeno;
シェープ参照テーブルのオフセット。オブジェクトの保持するシェープは、オブジェクト参照テーブルの shape と、この指定する数値を足した位置のリストのものが登録される。
int animno;
アニメーション参照テーブルのオフセット。アニメーションを同時にエントリーする場合、NDR_OBJ.geom_animの値にこの値を加えたテーブルのアニメーションをエントリーする。
int gid;
インスタンスIDのベース値。この値に、NDR_OBJ で指定される、gid を足したものが作成されるオブジェクトインスタンス構造体に登録される。
int flag;
ビットアサインされた生成フラグ。ビットが1の時有効になります
 bit 0 ... 一緒にNDR_OBJ のアニメーションリンクを設定する。
 bit 1 ... リンクを辿って親子関係の端に向かって評価する。
戻り値
NDD_INSTANCE *;
作成されたインスタンスの内、一番親のポインタ
注意
内部では、ndEntryObjectRaw を呼び出しています。
注意)インスタンスコールバック内では、使用できません。

ndEntryObjectRaw

関数名
ndEntryObjectRaw
構文
NDD_INSTANCE *ndEntryObjectRaw(NDD_INSTANCE *parent, NDR_OBJ *rop, int gid);
説明
オブジェクト参照テーブルからインスタンスを一つ作成する。 リンクは辿らず、アニメーションインスタンスも生成しない。
パラメータ
NDD_INSTANCE *parent;
親インスタンスのポインタ。NULL なら、オブジェクトのルートにぶら下がります。
NDR_OBJ *rop;
オブジェクト参照テーブルへのポインタ
int gid;
インスタンスIDのベース値。この値に、NDR_OBJ で指定される、gid を足したものが作成されるオブジェクトインスタンス構造体に登録される。
戻り値
NDD_INSTANCE *;
作成されたインスタンスのポインタ
注意
注意)インスタンスコールバック内では、使用できません。

ndAttachAnimation

関数名
ndAttachAnimation
構文
void ndAttachAnimation(NDD_INSTANCE *parent, NDD_INSTANCE *isp, int objno, int animno, int gid, int flag)
説明
オブジェクト参照テーブルのアニメーションリンクを参照し、既存のオブジェクトインスタンスにアニメーションをアタッチする。
パラメータ
NDD_INSTANCE *parent;
親インスタンスのポインタ。NULL なら、アニメーションルートにぶら下がります。
NDD_INSTANCE *isp;
アニメーションをアタッチするオブジェクトインスタンスのポインタ。
int objno;
グローバルリソースリスト上でのオブジェクト番号。
int animno;
アニメーション参照テーブルのオフセット。アニメーションを同時にエントリーする場合、NDR_OBJ.geom_animの値にこの値を加えたテーブルのアニメーションをエントリーする。
int gid;
インスタンスグループIDのベース値。この値に、NDR_OBJ で指定される、gid を足したものが作成されるオブジェクトインスタンス構造体に登録される。
int flag;
ビットアサインされた生成フラグ。ビットが1の時有効になります
 bit 0 ... 未使用
 bit 1 ... リンクを辿って親子関係の端に向かって評価する。
戻り値
NDD_INSTANCE *;
作成されたインスタンスの内、一番親のポインタ
注意
isp で渡されるオブジェクトインスタンスは、objno で指定された NDR_OBJ 構造体リストによって生成されたものとして扱います。
注意)インスタンスコールバック内では、使用できません。

ndEntryDeformVtx

関数名
ndEntryDeformVtx
構文
NDD_INSTANCE *ndEntryDeformVtx(NDD_INSTANCE *isp, NDR_DEFORM *dmfp, int ofs, int gid);
説明
頂点デフォームインスタンスをエントリーする
パラメータ
NDD_INSTANCE *isp;
活性頂点インスタンスへのポインタ
NDR_DEFORM *dmfp;
頂点デフォーム構造体へのポインタ
int ofs;
生頂点データリストを参照するときのオフセット
int gid;
インスタンスグループID
戻り値
NDD_INSTANCE *;
作成した、頂点デフォームインスタンスのポインタ。
注意
このインスタンスは、専用の親(deform_root_instp)にぶら下がります。

ndEntryDeformVtxcol

関数名
ndEntryDeformVtxcol
構文
NDD_INSTANCE *ndEntryDeformVtxcol(NDD_INSTANCE *isp, NDR_DEFORM *dmfp, int ofs, int gid);
説明
頂点カラーデフォームインスタンスをエントリーする
パラメータ
NDD_INSTANCE *isp;
活性頂点インスタンスへのポインタ
NDR_DEFORM *dmfp;
頂点カラーデフォーム構造体へのポインタ
int ofs;
生頂点カラーデータリストを参照するときのオフセット
int gid;
インスタンスグループID
戻り値
NDD_INSTANCE *;
作成した、頂点カラーデフォームインスタンスのポインタ。
注意
このインスタンスは、専用の親(deform_root_instp)にぶら下がります。 内部では3つのメモリを、システム関数の malloc()を使用して確保しています。 また、終了時のコールバックを設定しており、コールバックルーチン内にて malloc() で確保したメモリの解放を行ないます。

ndEntryDeformVtxnv

関数名
ndEntryDeformVtxnv
構文
NDD_INSTANCE *ndEntryDeformVtxnv(NDD_INSTANCE *isp, NDR_DEFORM *dmfp, int ofs, int gid);
説明
頂点法線デフォームインスタンスをエントリーする
パラメータ
NDD_INSTANCE *isp;
活性頂点インスタンスへのポインタ
NDR_DEFORM *dmfp;
頂点法線デフォーム構造体へのポインタ
int ofs;
生頂点法線データリストを参照するときのオフセット
int gid;
インスタンスグループID
戻り値
NDD_INSTANCE *;
作成した、頂点法線デフォームインスタンスのポインタ。
注意
このインスタンスは、専用の親(deform_root_instp)にぶら下がります。 内部では3つのメモリを、システム関数の malloc()を使用して確保しています。 また、終了時のコールバックを設定しており、コールバックルーチン内にて malloc() で確保したメモリの解放を行ないます。

ndEntryDeformVtxst

Function name
ndEntryDeformVtxst
Syntax
NDD_INSTANCE *ndEntryDeformVtxst(NDD_INSTANCE *isp, NDR_DEFORM *dmfp, int ofs, int gid);
Explanation
Make an entry of vertex texture coordinate deform instance.
Parameter
NDD_INSTANCE *isp;
Pointer for active vertex instance
NDR_DEFORM *dmfp;
Pointer for vertex texture coordinate deform structure
int ofs;
Offset when referring raw vertex texture coordinate data list
int gid;
Instance group ID
Return value
NDD_INSTANCE *;
Pointer for the created vertex texture coordinate deform instance
Note
This instance is linked to the exclusive parent(deform_root_instp). 3 memories are reserved inside using the system function, malloc(). Also, a call back for terminating is set, and the memory reserved by malloc() is released inside the call back routine.

ndEntryDeformShape

関数名
ndEntryDeformShape
構文
NDD_INSTANCE *ndEntryDeformShape(NDD_INSTANCE *isp, int ofs_rawvtx, int ofs_rawvtxcol, int ofs_rawvtxnv, int ofs_rawvtxst, int gid, int flag);
説明
オブジェクトインスタンスの参照するシェープを乗っとり、変調した頂点情報 にすり替えます。
パラメータ
NDD_INSTANCE *isp;
変調対象のオブジェクトインスタンスへのポインタ
int ofs_rawvtx;
int ofs_rawvtxcol;
int ofs_rawvtxnv;
int ofs_rawvtxst;
Offset when referring each data list
int gid;
インスタンスグループID
int flag;
ビットアサインされた生成フラグ。ビットが1の時有効になります
 bit 0 ... 頂点デフォームをエントリーする
 bit 1 ... 頂点カラーデフォームをエントリーする
 bit 2 ... 頂点法線デフォームをエントリーする
 bit 3 ... Make an entry of vertex texture coordinate doform.
戻り値
NDD_INSTANCE *;
生成した、活性頂点インスタンスのポインタ
注意
The upper instance of ndEntryDeformVtx(), ndEntryDeformVtxnv(), ndEntryDeformVtxcol(), and ndEntryDeformVtxst() are created. 関数内で、各デフォームインスタンスの生成を、パラメータの flag を 見ながら評価します。 Gfx の構築の非同期性に整合させる為、Vtx バッファは2つ持っています。 内部では3つのメモリを、システム関数の malloc()を使用して確保しています。
また、終了時のコールバックを設定しており、コールバックルーチン内にて malloc() で確保したメモリの解放を行ないます。

ndAttachDeform

関数名
ndAttachDeform
構文
void ndAttachDeform(NDD_INSTANCE *isp, int rawvtxno, int rawvtxcolno, int rawvtxnvno, int rawvtxstno, int gid, int flag);
説明
階層化されているオブジェクトインスタンスについて、デフォームが用意されて いる場合、エントリーする。
パラメータ
NDD_INSTANCE *isp;
活性頂点インスタンスの生成対象戸なるオブジェクトインスタンスのポインタ
int rawvtxno;
int rawvtxcolno;
int rawvtxnvno;
int rawvtxstno;
Offset when referring each data list.
int gid;
インスタンスグループID
int flag;
ビットアサインされた生成フラグ。ビットが1の時有効になります
 bit 0 ... 未使用。
 bit 1 ... リンクを辿って親子関係の端に向かって評価する。
 bit 2 ... 頂点デフォームをエントリーする
 bit 3 ... 頂点カラーデフォームをエントリーする
 bit 4 ... 頂点法線デフォームをエントリーする
 bit 5 ... Make an entry of vertex texture coordinate deform.
戻り値
注意

ndSetupScene

関数名
ndSetupScene
構文
void ndSetupScene(NDD_RESINFO *rip, int gid, int flag);
説明
シーンの参照テーブルからシーンを構築する。
パラメータ
NDD_RESINFO *rip;
リソースインフォメーション
int gid;
オブジェクトインスタンス登録時のグループID。
int flag;
生成状況設定フラグ作成フラグ。それぞれのビットが1の時、有効になるものは以下の通りです。
 bit 0 ... 一緒にNDR_OBJ のアニメーションリンクを設定する。
 bit 1 ... リンクを辿って親子関係の端に向かって評価する。
 bit 2 ... 頂点デフォームをエントリーする
 bit 3 ... 頂点カラーデフォームをエントリーする
 bit 4 ... 頂点法線デフォームをエントリーする
 bit 5 ... Make an entry of vertex texture coordinate deform.
注意
設定に使用するシーンデータ構造体は、rip->resinfo->scene を参照します。

ndSetScreen

関数名
ndSetScreen
構文
void ndSetScreen(int top, int bottom, int left, int right);
説明
スクリーン表示領域の画面幅と高さを設定する。
パラメータ
int top;
int bottom;
int left;
int right;
ピクセル単位の表示範囲。
注意

ndResInit

関数名
ndResInit
構文
void ndResInit(int olplim, int slplim, int alplim, int rvlplim, int rvclplim, int rvnlplim, int rvslplim);
説明
リソースモジュールの初期化
パラメータ
int olplim;
int slplim;
int alplim;
int rvlplim;
int rvclplim;
int rvnlplim;
int rvslplim;
List managing pointer of each data class and the maximum number
注意 ポインタリストは、システム関数の、malloc() を通して確保されます。

ndResEntry

関数名
ndResEntry
構文
NDD_RESINFO *ndResEntry(NDR_RESINFO *rrp, int usemask);
説明
指定リソースをグローバルリソースリストに追加する。
パラメータ
NDR_RESINFO *rrp;
参照用リソースインフォメーション構造体へのポインタ。
int usemask;
rrp の内容から、エントリーの対象になるデータの種類をビットで指定する。
戻り値
NDR_RESINFO *drp;
リソースインフォメーション構造体へのポインタ。
注意

ndResRelease

関数名
ndResRelease
構文
void ndResRelease(NDD_RESINFO *drp);
説明
指定リソースをグローバルリストから切り離します。
パラメータ
NDD_RESINFO *drp;
リソースインフォメーション構造体へのポインタ。
戻り値
注意
引数の、drp は解放されます。
直前にエントリーしたリソースのみ、解放可能です。

ndDeleteInstance

関数名
ndDeleteInstance
構文
void ndDeleteInstance(NDD_INSTANCE *isp);
説明
インスタンスを削除します。所有する子も削除します。
注意
インスタンスコールバック内では、使用できません。

ndGetInstanceTRXPointer

関数名
ndGetInstanceTRXPointer
構文
TRX *ndGetInstanceTRXPointer(NDD_INSTANCE *isp);
説明
インスタンスのポインタからトランスフォームバッファのポインタを返す。
パラメータ
NDD_INSTANCE *isp;
インスタンスポインタ。
注意
なぜこのような関数があるかというと、インスタンス構造体が、データタイプに よって TRX の位置が違うためです。

ndSetupIdentTRX

関数名
ndSetupIdentTRX
構文
void ndSetupIdentTRX(TRX *p)
説明
単位行列を返す。
パラメータ
TRX *p;
トランスフォームマトリクスのポインタ。
注意
並行移動、回転、拡大縮小の計9個のパラメータに単位行列に当たる、 0,0,0, 0,0,0, 1,1,1 を代入します。

ndProgressAnimTime

関数名
ndProgressAnimTime
構文
int ndProgressAnimTime(NDD_INST_ANIMTK *ntkp);
説明
タイムキーパーの時間進行処理
パラメータ
NDD_INST_ANIMTK *ntkp
アニメーションタイムキーパーインスタンスのポインタ。
戻り値
int;
実行結果。現在は必ず1が返ります。
注意
ndEvalInstance より呼ばれます。

ndSetAnimChannel

関数名
ndSetAnimChannel
構文
int ndSetAnimChannel(NDD_INST_ANIM *niap);
説明
キーフレームアニメーションチャンネル処理
パラメータ
NDD_INST_ANIM *niap;
アニメーションインスタンスのポインタ。
戻り値
int;
実行結果。
注意
ndEvalInstance より呼ばれます。

ndReloadDynamicVertex

関数名
ndReloadDynamicVertex
構文
void ndReloadDynamicVertex(NDD_INST_DYNAMICVTX *nidp);
説明
各種デフォームインスタンスの変調テーブルを参照し、Vtx を組み立てる。
パラメータ
NDD_INST_DYNAMICVTX *nidp;
活性頂点インスタンスの内部構造体のポインタ
戻り値
注意
描画ドライバに一部依存しており、設定する Vtx テーブルは2つ用意して います。

ndDeformVertex

関数名
ndDeformVertex
構文
void ndDeformVertex(NDD_INST_DEFORM_VTX *nidvp);
説明
頂点デフォームを行なう
パラメータ
NDD_INST_DEFORM_VTX *nidvp;
頂点デフォームインスタンスの内部構造体のポインタ
戻り値
注意

ndDeformVertexNv

関数名
ndDeformVertexNv
構文
void ndDeformVertexNv(NDD_INST_DEFORM_VTXNV *nidcp);
説明
頂点法線デフォームを行なう
パラメータ
NDD_INST_DEFORM_VTXNV *nidcp;
頂点法線デフォームインスタンスの内部構造体のポインタ
戻り値
注意

ndDeformVertexColor

関数名
ndDeformVertexColor
構文
void ndDeformVertexColor(NDD_INST_DEFORM_VTXCOL *nidcp);
説明
頂点カラーデフォームを行なう
パラメータ
NDD_INST_DEFORM_VTXCOL *nidcp;
頂点カラーデフォームインスタンスの内部構造体のポインタ
戻り値
注意

ndDeformVertexSt

Function name
ndDeformVertexSt
Syntax
void ndDeformVertexSt(NDD_INST_DEFORM_VTXST *nidcp);
Explanation
Perform vertex normal deform.
Parameter
NDD_INST_DEFORM_VTXNV *nidcp;
Pointer of inside structure for vertex texture coordinate deform instance.
Return value
Note

ndMakeCameraMatrix

関数名
ndMakeCameraMatrix
構文
void ndMakeCameraMatrix(float mf[4][4])
説明
カメラの情報から、カメラマトリクス(LookAt)を作成します。
注意
Perspective 等、PROJECTION_VIEW に関係するマトリクスではないので、注意 して下さい。

ndMultiTrx

関数名
ndMultiTrx
構文
void ndMultiTrx(float mf[4][4], TRX *trxp, u32 order);
説明
TRX 構造体を評価し、4x4のマトリクスを作成する
パラメータ
float mf[4][4];
作成するべきマトリクスを格納するバッファ
TRX *trxp;
マトリクスの元になるトランスフォームデータ構造体
u32 order;
回転成分の評価順。
注意
生成された4x4マトリクスは、インスタンスワーク内のバッファに置かれ、 表示の際に使用されます。

ndEvalInstanceOne

関数名
ndEvalInstanceOne
構文
int ndEvalInstanceOne(NDD_INSTANCE *isp, float mf[4][4], float cmf[4][4], int forceupd);
説明
isp によって指定されたインスタンスについて、フレーム評価を行なう。
パラメータ
NDD_INSTANCE *isp;
インスタンスのポインタ。
float mf[4][4];
モデルビューマトリクス。
float cmf[4][4];
インスタンスによって更新されたモデルビューマトリクス。
int forceupd;
強制的にマトリクスを生成するためのフラグ。1で強制。
戻り値
int;
マトリクス更新フラグ。 引数の forceudp の値と、自分のマトリクスが更新された場合、1を、or した値が返る。
注意
mf は、基本モデルビューマトリクスとして使用されます。 マトリクス評価が入らなかった場合でも、cmf には、 mf が返ります。

ndEvalInstance

関数名
ndEvalInstance
構文
void ndEvalInstance(NDD_INSTANCE *isp, float mf[4][4], int forceupd);
説明
isp によって指定されたインスタンスの下にぶら下がる全てのインスタンス について、フレーム評価を行なう。
パラメータ
NDD_INSTANCE *isp;
インスタンスのポインタ。
float mf[4][4];
モデルビューマトリクス。
int forceupd;
強制的にマトリクスを生成するためのフラグ。1で強制。
注意
mfは、基本モデルビューマトリクスとして使用されます。
再帰する上、ローカルに64byte のバッファを用意しているので、 結構スタックを消費する筈です。

ndClearFB

関数名
ndClearFB
構文
Gfx *ndClearFB(Gfx *gp, u16 fill_depth, u16 fill_col);
説明
パラメータ
Gfx *gp;
ディスプレイリストポインタ。
u16 fill_depth;
Zバッファをフィルする値
u16 fill_col;
カラー値をフィルする値
戻り値
Gfx *gp;
ディスプレイリストポインタ。
注意

ndEvalLight

関数名
ndEvalLight
構文
int ndEvalLight(float *tarpos, NDD_LIGHT *lp, RGBAQUAD *color, s8 *nv);
説明
パラメータ
float *tarpos;
ライトが当てられるターゲットのポジション。x,y,z の3値。 NULL なら、原点(0,0,0)として計算する。
NDD_LIGHT *lp;
ライト構造体へのポインタ。
RGBQUAD *color;
カラー値を格納する、RGBAQUAD構造体へのポインタ。
s8 *nv;
ライトベクトルを格納するポインタ。S0.7形式の x,y,z 3値(3 byte)。
戻り値
int;
ライトの評価で、ライトが無効である場合、0 が返ります。
注意
NDD_LIGHT 構造体には次の制限があります。 ・fnv で与えられる法線は正規化されていること。 ・flag に、NDC_LFLAG_ATTENUATION が設定されている場合、start, end に 有効な値を代入しておく必要がある。 ・NDC_LFLAG_CUTOFF は、NDC_LFLAG_HAVEPOS 時のみ有効。 これらは実行スピードを義性にチェック可能ですが、ゲーム用マネージャー ということで、無視しています。 返り値に0 が返った場合、color, nv は不定です。

ndReloadLightReg

関数名
ndReloadLightReg
構文
Gfx *ndReloadLightReg(Gfx *gp, NDD_LIGHT *lp, u32 newcolor, s8 *newlvec);
説明
パラメータ
Gfx *gp;
ディスプレイリストポインタ。
NDD_LIGHT *lp;
ライト構造体へのポインタ。
u32 newcolor;
新たに設定するカラー値。上位ビットより、0xRRGGBB00 の形式で格納 されていること。下位8ビットは、内部で 0x00 にして扱う。
s8 *newlvec;
新たに設定するベクトルへのポインタ。S0.7 形式の、x,y,z 3値(3 byte) を見る。NULL は受け付けません。
戻り値
Gfx *gp;
ディスプレイリストポインタ。
注意
NDD_LIGHT 構造体のうち、color, power, stored_nv の3つを参照し、 必要部分のヒープを定義、RSPコマンドをバッファに積みます。 この関数は、内部使用に対し最適化されているため、ユーザーの任意にて コールする場合は、内容をよく理解した上で使用して下さい。

ndSetupLightset

関数名
ndSetupLightset
構文
Gfx *ndSetupLightset(Gfx *gp, float *tarpos, NDD_LIGHTSET *lightset);
説明
初期化済みの、lightset で渡されたライトセットを、対象になるオブジェクト と共に評価し、変更のある部分に限りディスプレイリストに積む。
パラメータ
Gfx *gp;
ディスプレイリストポインタ。
float *tarpos;
ライトが当てられるターゲットのポジション。x,y,z の3値。
NULL なら、原点(0,0,0)として計算する。
NDD_LIGHTSET *lightset;
ライトセット構造体へのポインタ。
戻り値
Gfx *gp;
ディスプレイリストポインタ。
注意
引数のtarposは、そのまま、ndEvalLight() に渡され評価されます。その結果、 NULL の場合、原点〜に置き換えられて評価されます。

ndInitLights

関数名
ndInitLights
構文
int ndInitLights( NDD_LIGHTSET *lightset );
説明
RDPのライト設定をリセットし、ライト数を決定し、ライト構造体毎に ライト番号を割り付ける。
パラメータ
NDD_LIGHTSET *lightset;
ライトセット構造体へのポインタ。
戻り値
int;
有効なライト数
注意
各ライト構造体のflag の、_ENABLE ビットを参照して、必要となるライト数を 計上し、各々のライト番号を割り付けます。 この番号は、RSPで実際に評価されるライト番号ですが、ユーザーは特に 意識する必要はなく、API関数によって再設定を行なう場合に参照、使用 されます。

ndSetupObjectRegister

関数名
ndSetupObjectRegister
構文
Gfx *ndSetupObjectRegister( Gfx *gp, NDD_INST_OBJ *niop );
説明
オブジェクトインスタンス構造体を参照し、再設定の指定があるレジスタを 再設定する。
パラメータ
Gfx *gp;
ディスプレイリストバッファへのポインタ。
NDD_INST_OBJ *niop;
オブジェクトインスタンス構造体へのポインタ。
戻り値
Gfx *;
更新後のGfx バッファポインタ。
注意
ndDrawObjectInstance から呼ばれます。

ndDrawShape

関数名
ndDrawShape
構文
Gfx *ndDrawShape( Gfx *gp, NDR_SHAPE *shp );
説明
シェープ構造体の内容に従って、Gfx 構造体を描画バッファに積む。
パラメータ
Gfx *gp;
ディスプレイリストバッファへのポインタ。
NDR_SHAPE *shp;
参照用シェープ構造体へのポインタ。
戻り値
Gfx *;
更新後のGfx バッファポインタ。
注意
ndDrawObjectInstance から呼ばれます。

ndDrawObjectInstance

関数名
ndDrawObjectInstance
構文
int ndDrawObjectInstance( NDD_INST_OBJ *niop );
説明
1オブジェクトを表示する
パラメータ
Gfx *gp;
ディスプレイリストバッファへのポインタ。
NDD_INST_OBJ *niop;
オブジェクトインスタンス構造体へのポインタ。
戻り値
Gfx *;
更新後のGfx バッファポインタ。
注意
ndBuildInstanceGfx から呼ばれます。

ndBuildInstanceGfxAtPrio

関数名
ndBuildInstanceGfxAtPrio
構文
Gfx *ndBuildInstanceGfxAtPrio(Gfx *gp, NDD_INSTANCE *isp, u16 start, u16 end);
説明
指定のインスタンスポインタ以降を対象に、特定のプライオリティの インスタンスを、描画する。
パラメータ
Gfx *gp;
ディスプレイリストポインタ。
NDD_INSTANCE *isp;
対象のインスタンスポインタ。NULLを与えると オブジェクトの ルート以下全てを評価します。
u16 start;
描画対象のプライオリティ。start も描画対象として含まれます。
u16 end;
描画対象外のプライオリティ。end は描画されません。ご注意下さい。
戻り値
Gfx *;
更新された、ディスプレイリストポインタ。
注意
start, end の大小関係は、start の方が高い値(優先順位高い)にして下さい。

ndBuildSceneGfx

関数名
ndBuildSceneGfx
構文
Gfx *ndBuildSceneGfx(Gfx *gp, float mul[4][4]);
説明
カレントのシーン構造体からシーン部分のディスプレイリストを積みます。
パラメータ
Gfx *gp;
ディスプレイリストポインタ。
float mul[4][4];
カメラのマトリクス。
注意
カメラのマトリクス、mul は、プロジェクションマトリクスに乗算されます。

ndBuildInstanceGfx

関数名
ndBuildInstanceGfx
構文
Gfx *ndBuildInstanceGfx(Gfx *gp, NDD_INSTANCE *isp);
説明
カレントのシーン構造体からシーン部分のディスプレイリストを積みます。
パラメータ
Gfx *gp;
ディスプレイリストポインタ。
NDD_INSTANCE *isp;
対象のインスタンスポインタ。NULLを与えると オブジェクトの ルート以下全てを評価します。
戻り値
Gfx *;
更新された、ディスプレイリストポインタ。
注意
内部では、オブジェクトのプライオリティ全体を与える形で、 ndBuildInstanceGfxAtPrio() を呼び出しています。

Copyright 1997-1999 NINTENDO Co.,Ltd./1998-1999 MONEGI CORPORATION All rights reserved.

nd関数一覧へ