FineKernelToolKit 4.2.13
|
IFSテクスチャを生成、管理するクラス [詳解]
#include <CLI/FK_CLI/include/IFSTexture_CLI.h>
公開メンバ関数 | |
fk_IFSTexture () | |
コンストラクタ1 | |
fk_IFSTexture (fk_Image^ image) | |
コンストラクタ2 | |
~fk_IFSTexture () | |
デストラクタ | |
!fk_IFSTexture () | |
ファイナライザ | |
void | Init (void) |
初期化メソッド | |
fk_TexCoord ^ | GetTextureCoord (int tID, int vID) |
テクスチャ座標参照メソッド | |
void | CloneShape (fk_IFSTexture^ ifsTex) |
形状コピーメソッド | |
void | SetTextureCoord (int tID, int vID, fk_TexCoord^ coord) |
テクスチャ座標設定メソッド | |
bool | ReadMQOFile (String^ fileName, String^ objName, int materialID, bool contFlg) |
MQOファイル入力メソッド1 | |
bool | ReadMQOFile (String^ fileName, String^ objName, int materialID) |
MQOファイル入力メソッド2 | |
bool | ReadMQOFile (String^ fileName, String^ objName) |
MQOファイル入力メソッド3 | |
bool | ReadD3DXFile (String^ fileName, String^ objName, int materialID) |
DirectX (D3DX) ファイル入力メソッド1 | |
bool | ReadD3DXFile (String^ fileName, String^ objName) |
DirectX (D3DX) ファイル入力メソッド1 | |
bool | MoveVPosition (int vID, const fk_Vector^ pos, int order) |
頂点移動メソッド1 | |
bool | MoveVPosition (int vID, const fk_Vector^ pos) |
頂点移動メソッド2 | |
bool | MoveVPosition (int vID, double x, double y, double z, int order) |
頂点移動メソッド3 | |
bool | MoveVPosition (int vID, double x, double y, double z) |
頂点移動メソッド4 | |
![]() | |
bool | ReadBMP (String^ fileName) |
BMP ファイル入力メソッド | |
bool | ReadPNG (String^ fileName) |
PNG ファイル入力メソッド | |
bool | ReadJPG (String^ fileName) |
JPEG ファイル入力メソッド | |
void | FillColor (fk_Color^ color) |
一様色初期化メソッド1 | |
void | InitFrameBuffer (void) |
フレームバッファー情報初期化メソッド | |
![]() | |
void | SetShaderAttribute (String^ name, int dim, IEnumerable< int >^ array) |
シェーダー内 attribute 変数設定メソッド1 | |
void | SetShaderAttribute (String^ name, int dim, IEnumerable< float >^ array) |
シェーダー内 attribute 変数設定メソッド2 | |
void | SetShaderAttribute (String^ name, int dim, IEnumerable< double >^ array) |
シェーダー内 attribute 変数設定メソッド3 | |
void | SetShaderAttribute (String^ name, int dim, IEnumerable< fk_Vector^>^ array) |
シェーダー内 attribute 変数設定メソッド4 | |
void | SetShaderAttribute (String^ name, int dim, IEnumerable< fk_TexCoord^>^ array) |
シェーダー内 attribute 変数設定メソッド5 | |
void | SetShaderAttribute (String^ name, int dim, IEnumerable< fk_HVector^>^ array) |
シェーダー内 attribute 変数設定メソッド6 | |
![]() | |
bool | SetAttrII (int key, int value) |
キーが int 型、値が int 型である属性設定メソッド | |
bool | SetAttrID (int key, double value) |
キーが int 型、値が double 型である属性設定メソッド | |
bool | SetAttrIS (int key, String^ value) |
キーが int 型、値が String 型である属性設定メソッド | |
bool | SetAttrSI (String^ key, int value) |
キーが String 型、値が int 型である属性設定メソッド | |
bool | SetAttrSD (String^ key, double value) |
キーが String 型、値が double 型である属性設定メソッド | |
bool | SetAttrSS (String ^ key, String^ value) |
キーが String 型、値が String 型である属性設定メソッド | |
int | GetAttrII (int key) |
キーが int 型、値が int 型である属性参照メソッド | |
double | GetAttrID (int key) |
キーが int 型、値が double 型である属性参照メソッド | |
String ^ | GetAttrIS (int key) |
キーが int 型、値が String 型である属性参照メソッド | |
int | GetAttrSI (String^ key) |
キーが String 型、値が int 型である属性参照メソッド | |
double | GetAttrSD (String^ key) |
キーが String 型、値が double 型である属性参照メソッド | |
String ^ | GetAttrSS (String^ key) |
キーが String 型、値が String 型である属性参照メソッド | |
bool | ExistAttrII (int key) |
キーが int 型、値が int 型である属性存在参照メソッド | |
bool | ExistAttrID (int key) |
キーが int 型、値が double 型である属性存在参照メソッド | |
bool | ExistAttrIS (int key) |
キーが int 型、値が String 型である属性存在参照メソッド | |
bool | ExistAttrSI (String^ key) |
キーが String 型、値が int 型である属性存在参照メソッド | |
bool | ExistAttrSD (String^ key) |
キーが String 型、値が double 型である属性存在参照メソッド | |
bool | ExistAttrSS (String^ key) |
キーが String 型、値が String 型である属性存在参照メソッド | |
bool | DeleteAttrII (int key) |
キーが int 型、値が int 型である属性消去メソッド | |
bool | DeleteAttrID (int key) |
キーが int 型、値が double 型である属性消去メソッド | |
bool | DeleteAttrIS (int key) |
キーが int 型、値が String 型である属性消去メソッド | |
bool | DeleteAttrSI (String^ key) |
キーが String 型、値が int 型である属性消去メソッド | |
bool | DeleteAttrSD (String^ key) |
キーが String 型、値が double 型である属性消去メソッド | |
bool | DeleteAttrSS (String^ key) |
キーが String 型、値が String 型である属性消去メソッド | |
プロパティ | |
fk_IndexFaceSet^ | IFS [get] |
形状データプロパティ | |
double | AnimationTime [set] |
アニメーション時間プロパティ | |
fk_BVHMotion^ | BVHMotion [set] |
BVH データプロパティ | |
bool | ConnectMode [get, set] |
法線連続性プロパティ | |
![]() | |
fk_Image^ | Image [get, set] |
画像データプロパティ | |
fk_Dimension^ | ImageSize [get] |
画像サイズプロパティ | |
fk_Dimension^ | BufferSize [get] |
画像バッファサイズプロパティ | |
fk_TexMode | TextureMode [get, set] |
テクスチャモードプロパティ | |
fk_TexRendMode | RendMode [get, set] |
テクスチャ描画品質プロパティ | |
fk_TexWrapMode | WrapMode [get, set] |
テクスチャ外周部設定プロパティ | |
fk_FrameBuffer^ | FrameBuffer [get, set] |
フレームバッファープロパティ | |
![]() | |
fk_RealShapeType^ | RealShapeType [get] |
形状データ構造プロパティ | |
IFSテクスチャを生成、管理するクラス
このクラスは、「IFSテクスチャ」を制御する機能を提供します。 IFSテクスチャとは、多数の三角形テクスチャをひとまとめにした形状のことで、 実質的には fk_IndexFaceSet クラスに対してテクスチャを付加したものです。 このクラスの主な用途は、 他のモデラー等で作成した形状データファイルを読み込んで表示するというものです。 また、 fk_IndexFaceSet クラスと同様に形状のアニメーションを入力することも可能です。
なお、このクラスでテクスチャ付きの形状データを読み込む場合、 テクスチャデータは 1 個のファイルで構成されていなければならないという制限があります。
実際に利用する際には、まずテクスチャ画像データを設定する必要があります。 画像データの入力や生成については、 fk_Texture のマニュアルを参照して下さい。 形状データの入力と画像データの設定は、どちらが先であっても問題ありません。
本クラスと同様の機能を持つクラスとして、 fk_MeshTexture があります。 fk_MeshTexture クラスと比較した、 本クラスの長所と短所をまとめると以下のようになります。
ほとんどの用途においては fk_IFSTexture の方が有利と言えますが、 3角形テクスチャの動的生成を行いたい場合は fk_MeshTexture の利用を検討する価値があると言えます。
FK_CLI::fk_IFSTexture::fk_IFSTexture | ( | ) |
コンストラクタ1
テクスチャデータを空の状態としてインスタンスを生成します。
FK_CLI::fk_IFSTexture::fk_IFSTexture | ( | fk_Image^ | image | ) |
コンストラクタ2
引数画像をテクスチャ画像とするインスタンスを生成します。
[in] | image | テクスチャデータ。 null が代入された場合はテクスチャデータを空の状態として生成します。 |
FK_CLI::fk_IFSTexture::~fk_IFSTexture | ( | ) |
デストラクタ
FK_CLI::fk_IFSTexture::!fk_IFSTexture | ( | ) |
ファイナライザ
void FK_CLI::fk_IFSTexture::Init | ( | void | ) |
初期化メソッド
テクスチャデータおよびテクスチャ座標のデータを全て破棄し、 初期化を行います。
fk_TexCoord ^ FK_CLI::fk_IFSTexture::GetTextureCoord | ( | int | tID, |
int | vID | ||
) |
テクスチャ座標参照メソッド
テクスチャ座標を参照します。
[in] | tID | 三角形ID |
[in] | vID | 頂点ID |
void FK_CLI::fk_IFSTexture::CloneShape | ( | fk_IFSTexture^ | ifsTex | ) |
形状コピーメソッド
引数として与えられたインスタンス中の形状やテクスチャデータをコピーします。
[in] | ifsTex | 複写元インスタンス |
void FK_CLI::fk_IFSTexture::SetTextureCoord | ( | int | tID, |
int | vID, | ||
fk_TexCoord^ | coord | ||
) |
テクスチャ座標設定メソッド
テクスチャ座標を設定します。
[in] | tID | 三角形ID |
[in] | vID | 頂点ID |
[in] | coord | テクスチャ座標 |
bool FK_CLI::fk_IFSTexture::ReadMQOFile | ( | String^ | fileName, |
String^ | objName, | ||
int | materialID, | ||
bool | contFlg | ||
) |
MQOファイル入力メソッド1
MQO形式のファイルからデータを入力します。 本メソッドで入力できるのは形状とテクスチャ座標データです。 テクスチャ画像データは fk_Texture のメソッドによって、 別途入力する必要があります。
MQOデータには「オブジェクト」という概念があり、 1つの形状データが複数のオブジェクトによって構成されていることがあります。 本メソッドでは、ファイル名とともにオブジェクト名を指定する必要があります。
[in] | fileName | ファイル名 |
[in] | objName | オブジェクト名 |
[in] | materialID | MQOデータではマテリアルを複数設定することができ、 各ポリゴンに対してどのマテリアルを割り振るかのIDが設定されています。 この引数にマテリアルIDを指定すると、そのIDを持つポリゴンのみを読み込みます。 materialID に -1 を入力した場合は、すべてのポリゴンを読み込みます。 |
[in] | contFlg | テクスチャ断絶の設定を指定します。これは、テクスチャ座標が不連続な箇所に対し、 形状の位相を断絶する操作を行うためのものです。 これを true にした場合は断裂操作が行われ、 テクスチャ座標が不連続な箇所が幾何的にも不連続となるように表示されます。 ほとんどの場合は、断裂操作を行った方が良好な描画結果となります。 ただし、断裂操作を行う際に新たな位相要素を生成するため、 本来のデータよりも頂点、稜線、面が若干増加する場合があります。 false にした場合は、断裂操作を行わずに通常のデータ通り読み込みます。 |
bool FK_CLI::fk_IFSTexture::ReadMQOFile | ( | String^ | fileName, |
String^ | objName, | ||
int | materialID | ||
) |
MQOファイル入力メソッド2
MQO形式のファイルからデータを入力します。 本メソッドで入力できるのは形状とテクスチャ座標データです。 テクスチャ画像データは fk_Texture のメソッドによって、 別途入力する必要があります。
MQOデータには「オブジェクト」という概念があり、 1つの形状データが複数のオブジェクトによって構成されていることがあります。 本メソッドでは、ファイル名とともにオブジェクト名を指定する必要があります。
なお、本メソッドは ReadMQOFile(String^, String^, int, bool) において、 最後の引数を true にした場合と同義になります。
[in] | fileName | ファイル名 |
[in] | objName | オブジェクト名 |
[in] | materialID | MQOデータではマテリアルを複数設定することができ、 各ポリゴンに対してどのマテリアルを割り振るかのIDが設定されています。 この引数にマテリアルIDを指定すると、そのIDを持つポリゴンのみを読み込みます。 materialID に -1 を入力した場合は、すべてのポリゴンを読み込みます。 |
bool FK_CLI::fk_IFSTexture::ReadMQOFile | ( | String^ | fileName, |
String^ | objName | ||
) |
MQOファイル入力メソッド3
MQO形式のファイルからデータを入力します。 本メソッドで入力できるのは形状とテクスチャ座標データです。 テクスチャ画像データは fk_Texture のメソッドによって、 別途入力する必要があります。
MQOデータには「オブジェクト」という概念があり、 1つの形状データが複数のオブジェクトによって構成されていることがあります。 本メソッドでは、ファイル名とともにオブジェクト名を指定する必要があります。
なお、本メソッドは ReadMQOFile(String^, String^, int, bool) において、 3番目の引数に -1 を、最後の引数を true にした場合と同義になります。
[in] | fileName | ファイル名 |
[in] | objName | オブジェクト名 |
bool FK_CLI::fk_IFSTexture::ReadD3DXFile | ( | String^ | fileName, |
String^ | objName, | ||
int | materialID | ||
) |
DirectX (D3DX) ファイル入力メソッド1
DirectX 形式 (X 形式と呼ばれることもあります) のフォーマット (以下、「D3DX形式」) であるファイルからデータを入力します。 本メソッドで入力できるのは形状、テクスチャ座標データ、 そしてアニメーションデータです。 テクスチャ画像データは fk_Texture のメソッドによって、 別途入力する必要があります。
D3DXデータには「オブジェクト」という概念があり、 1つの形状データが複数のオブジェクトによって構成されていることがあります。 本メソッドでは、ファイル名とともにオブジェクト名を指定する必要があります。
[in] | fileName | ファイル名 |
[in] | objName | オブジェクト名。 D3DX 形式では、オブジェクト名を省略することが許容されています。 そのような場合は、この引数に空文字列 ( "" ) を入れてください。 この場合、ファイル中で最初に存在するオブジェクトのデータを入力します。 |
[in] | materialID | D3DXデータではマテリアルを複数設定することができ、 各ポリゴンに対してどのマテリアルを割り振るかのIDが設定されています。 この引数にマテリアルIDを指定すると、そのIDを持つポリゴンのみを読み込みます。 materialID に -1 を入力した場合は、すべてのポリゴンを読み込みます。 |
bool FK_CLI::fk_IFSTexture::ReadD3DXFile | ( | String^ | fileName, |
String^ | objName | ||
) |
DirectX (D3DX) ファイル入力メソッド1
DirectX 形式 (X 形式と呼ばれることもあります) のフォーマット (以下、「D3DX形式」) であるファイルからデータを入力します。 本メソッドで入力できるのは形状、テクスチャ座標データ、 そしてアニメーションデータです。 テクスチャ画像データは fk_Texture のメソッドによって、 別途入力する必要があります。
D3DXデータには「オブジェクト」という概念があり、 1つの形状データが複数のオブジェクトによって構成されていることがあります。 本メソッドでは、ファイル名とともにオブジェクト名を指定する必要があります。
なお、本メソッドは ReadD3DXFile(String^, String^, int) において、 最後の引数を -1 にした場合と同義になります。
[in] | fileName | ファイル名 |
[in] | objName | オブジェクト名。 D3DX 形式では、オブジェクト名を省略することが許容されています。 そのような場合は、この引数に空文字列 ( "" ) を入れてください。 この場合、ファイル中で最初に存在するオブジェクトのデータを入力します。 |
bool FK_CLI::fk_IFSTexture::MoveVPosition | ( | int | vID, |
const fk_Vector^ | pos, | ||
int | order | ||
) |
頂点移動メソッド1
形状の頂点を移動します。 order は通常は 0 を入力してください。
[in] | vID | 頂点ID |
[in] | pos | 移動位置ベクトル |
[in] | order | 全頂点ID のうち、もっとも最小の ID 番号 |
bool FK_CLI::fk_IFSTexture::MoveVPosition | ( | int | vID, |
const fk_Vector^ | pos | ||
) |
頂点移動メソッド2
形状の頂点を移動します。
[in] | vID | 頂点ID |
[in] | pos | 移動位置ベクトル |
bool FK_CLI::fk_IFSTexture::MoveVPosition | ( | int | vID, |
double | x, | ||
double | y, | ||
double | z, | ||
int | order | ||
) |
頂点移動メソッド3
形状の頂点を移動します。 order は通常は 0 を入力してください。
[in] | vID | 頂点ID |
[in] | x | 移動位置ベクトルの x 成分 |
[in] | y | 移動位置ベクトルの y 成分 |
[in] | z | 移動位置ベクトルの z 成分 |
[in] | order | 全頂点ID のうち、もっとも最小の ID 番号 |
bool FK_CLI::fk_IFSTexture::MoveVPosition | ( | int | vID, |
double | x, | ||
double | y, | ||
double | z | ||
) |
頂点移動メソッド4
形状の頂点を移動します。
[in] | vID | 頂点ID |
[in] | x | 移動位置ベクトルの x 成分 |
[in] | y | 移動位置ベクトルの y 成分 |
[in] | z | 移動位置ベクトルの z 成分 |
|
get |
形状データプロパティ
fk_IFSTexture では、形状データとして fk_IndexFaceSet クラスのインスタンスを保持しています。 このプロパティは、そのインスタンスを参照します。 ここで得たインスタンスに対して形状を操作することで、 fk_IFSTexture による形状の操作が可能となります。
|
set |
アニメーション時間プロパティ
D3DX形式の入力や BVH データ設定によってアニメーションが設定されていた場合、 形状を指定した時間に対応する状態に設定します。
|
set |
BVH データプロパティ
入力した形状データに対し、 fk_BVHMotion によるのモーションデータを設定します。
|
getset |
法線連続性プロパティ
入力する形状に対して法線連続性の参照・設定を行います。 true の場合有効、false の場合無効となります。
法線連続性を有効にした場合、 形状全体に対してスムースシェーディングの効果を有効とします。 この場合は、各ポリゴン同士の境界がわかりづらくなります。 法線連続性を無効にした場合、 ポリゴン同士のスムースシェーディングは行いません。 そのため、各ポリゴン同士の描画が明確となります。
なお、本メソッドによる設定はファイル入力よりも前に行う必要があります。 既に入力したデータに対しては適用されません。