■ColladaLoaderクラスのメンバ関数リファレンス |
COLLADAフォーマット形式のdaeファイルから頂点情報を取得するための ColladaLoaderクラス のリファレンスです。
構文の記述形式は便宜上のものでjavascriptの文法にのっとった記述ではありません。
■load 関数
daeファイルを読み込みます。
構文
void load( string relativePath, Mesh colladaArray[] );
パラメータ
- relativePath
- [in] daeファイルの相対パス。
- colladaArray[]
- [out] WebGLで描画時に使用する頂点バッファ。
戻り値
なし
解説
publicスコープです。
Ajaxを使用してWebサーバー上にあるdaeファイルを読み込みます。Ajaxについては本サンプルの趣旨から外れるので説明しませんが、 興味のある方はウィキペディアを参照してください。
■parse 関数
daeファイルの内容を解析し、WebGLで描画時に使用する頂点バッファフォーマットに変換します。
構文
void parse( Mesh colladaArray[] );
パラメータ
- colladaArray[]
- [out] WebGLで描画時に使用する頂点バッファ。
戻り値
なし解説
privateスコープです。
読み込んだdaeファイルの内容を javascript標準の DOM API を使用して解析し、 WebGLでの描画時に使用する頂点バッファフォーマットに変換します。
■getURL 関数
#つきの識別子から#を取り除きます。
構文
string getURL( string url );
パラメータ
- url
- [in] 変換元の識別子。
戻り値
変換後の識別子。解説
privateスコープです。
COLLADAフォーマットでは#つきの識別子が検索元となる識別子、#なしの識別子が検索対象となる識別子で、#を除いた識別子同士がペアになるようです。
■LTrim 関数
文字列の左側の半角スペースを取り除きます。
構文
string LTrim( string str );
パラメータ
- str
- [in] 変換対象の文字列。
戻り値
パラメータの文字列の左側の半角スペースを取り除いた文字列。解説
privateスコープです。
javascriptにはTrim系の関数がないので実装しました。 正規表現による記述方法もありますが、わかりにくいので使用していません。
正規表現については下記のサイトを参照してみてください。
■geElementsByNodeName 関数
jQueryで使用されているセレクターの文法にのっとった形式で指定可能な子要素を取得するための関数です。
構文
void geElementsByNodeName( NodeList searchNode, string selector, NodeList children[] );
パラメータ
- searchNode
- [in] 検索対象の要素。
- selector
- [in] セレクターを指定する文字列。
- children[]
- [out] 検索の結果を格納した要素の配列。
戻り値
なし。解説
privateスコープです。
セレクターは階層ごとに要素名を半角スペースを区切り文字として連結して指定します。属性の指定が必要な場合は[]で囲って=を区切り文字として属性名と値を指定します。例.
"COLLADA library_visual_scenes visual_scene[id=Scene] node[id=Mesh] instance_geometry"この場合<instance_geometry>以下のすべての要素を取得します。
■splitPolylist 関数
Polylist専用です。1ポリゴンの頂点数が4頂点以上のデータの場合、インデックスデータを3頂点にコンバートします。
構文
int[][] splitPolylist( string semanticArray[], NodeList input[], );
パラメータ
- semanticArray[]
- [in] "VERTEX"、"NORMAL"、"TEXCOORD"などの頂点エレメントを示す文字列の配列
- input[]
- [in] <polylist>要素の子要素。
戻り値
3頂点にコンバートしたインデックスデータを返します。この戻り値は連想配列となっています。 連想配列の各要素の参照は、"VERTEX"、"NORMAL"、"TEXCOORD"などの頂点エレメントの文字列を示して行います。解説
privateスコープです。
Polylistの場合、この関数を使用してインデックスデータを3頂点にコンバートします。 これは描画処理を1関数のみ、つまり三角ポリゴンの描画処理のみで処理できるようにするために行います。
COLLADAフォーマットでは頂点エレメントごとに個別にインデックスデータを持つため、 頂点エレメントごとにインデックスデータをコンバートします。
■parseIntArray 関数
文字列配列を数値の配列に変換する。
構文
int[] parseIntArray( string strArray[] );
パラメータ
- strArray[]
- [in] 数値型に変換する文字列配列
戻り値
変換した数値型配列。解説
privateスコープです。
daeファイルから読み込んだインデックスデータなどのデータは文字列として配列に格納されます。 そのため数値型に変換する目的で使用します。
■getError 関数
エラー文字列を取得する
構文
string getError();
パラメータ
なし
戻り値
エラー文字列。解説
publicスコープです。
エラー文字列を取得します。 load関数の実行後にこの関数を実行してエラーの有無をチェックしてください。