FineKernelToolKit 4.2.13
|
メッシュテクスチャを生成、管理するクラス [詳解]
#include <CLI/FK_CLI/include/MeshTexture_CLI.h>
公開メンバ関数 | |
fk_MeshTexture () | |
コンストラクタ1 | |
fk_MeshTexture (fk_Image^ image) | |
コンストラクタ2 | |
~fk_MeshTexture () | |
デストラクタ | |
!fk_MeshTexture () | |
ファイナライザ | |
void | Init (void) |
初期化メソッド | |
bool | SetTextureCoord (int tID, int vID, double x, double y) |
テクスチャ座標設定メソッド1 | |
bool | SetTextureCoord (int tID, int vID, fk_TexCoord^ coord) |
テクスチャ座標設定メソッド2 | |
bool | SetTriTextureCoord (int tID, IEnumerable< fk_TexCoord^>^ array) |
テクスチャ座標配列設定メソッド | |
fk_TexCoord ^ | GetTextureCoord (int tID, int vID) |
テクスチャ座標参照メソッド | |
bool | SetVertexPos (int tID, int vID, double x, double y, double z) |
頂点位置ベクトル設定メソッド1 | |
bool | SetVertexPos (int tID, int vID, fk_Vector^ pos) |
頂点位置ベクトル設定メソッド2 | |
bool | SetTriPos (int tID, IEnumerable< fk_Vector^>^ array) |
頂点位置ベクトル配列設定メソッド | |
fk_Vector ^ | GetVertexPos (int tID, int vID) |
頂点位置ベクトル参照メソッド | |
void | PutIndexFaceSet (fk_IndexFaceSet^ ifs) |
fk_IndexFaceSet インスタンスコピーメソッド | |
bool | ReadMQOFile (String^ fileName, String^ objName, bool contFlg) |
MQOファイル入力メソッド1 | |
bool | ReadMQOFile (String^ fileName, String^ objName) |
MQOファイル入力メソッド2 | |
![]() | |
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 型である属性消去メソッド | |
プロパティ | |
int | TriNum [get, set] |
3角形面数プロパティ | |
![]() | |
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] |
形状データ構造プロパティ | |
メッシュテクスチャを生成、管理するクラス
このクラスは、複数の3角形テクスチャを制御する機能を提供します。
メッシュテクスチャを生成するおおまかな手順は以下のようになります。
空間上に各頂点を配置する際、頂点の順番が反時計回りになっている側が表面となります。 テクスチャ座標系の方は必ずしも反時計回りになっている必要はありませんが、 それが時計回りである場合は表示される画像が結果的に裏返ります。
本クラスでは、1つのインスタンスで複数枚の3角形テクスチャを扱うことができます。 (その分、 fk_TriTexture よりも利用方法はやや複雑になっています。) 同様の機能を持つクラスとして、 fk_IFSTexture があります。 fk_IFSTexture クラスと比較した、 本クラスの長所と短所をまとめると以下のようになります。
総じて、3角形テクスチャの動的生成を想定する場合は fk_MeshTexture が有用です。 それ以外の用途では、 fk_IFSTexture の利用を検討する価値があると言えます。
FK_CLI::fk_MeshTexture::fk_MeshTexture | ( | ) |
コンストラクタ1
テクスチャ画像自体は初期状態では生成しません。
FK_CLI::fk_MeshTexture::fk_MeshTexture | ( | fk_Image^ | image | ) |
コンストラクタ2
[in] | image | テクスチャ画像。null を代入した場合は、 テクスチャ画像を初期状態では生成しません。 |
FK_CLI::fk_MeshTexture::~fk_MeshTexture | ( | ) |
デストラクタ
FK_CLI::fk_MeshTexture::!fk_MeshTexture | ( | ) |
ファイナライザ
void FK_CLI::fk_MeshTexture::Init | ( | void | ) |
初期化メソッド
現在設定されているテクスチャ画像を廃棄し、全ての設定を初期状態に戻します。
bool FK_CLI::fk_MeshTexture::SetTextureCoord | ( | int | tID, |
int | vID, | ||
double | x, | ||
double | y | ||
) |
テクスチャ座標設定メソッド1
頂点のテクスチャ座標を設定します。 テクスチャ座標系については fk_TexCoord の説明を参照して下さい。 テクスチャ座標は、一度設定した後でも動的に変更することが可能です。
[in] | tID | 3角形面の ID を入力します。 ID は 0 から始まる整数値で、最大が枚数から1を引いたものとなります。 |
[in] | vID | 頂点IDを入力します。0, 1, 2 のいずれかになります。 それ以外の値を入力した場合はエラーとなり、false を返します。 |
[in] | x | テクスチャ座標の x 成分。0 以上 1 以下である必要があります。 それ以外の値を入力した場合はエラーとなり、false を返します。 |
[in] | y | テクスチャ座標の y 成分。0 以上 1 以下である必要があります。 それ以外の値を入力した場合はエラーとなり、false を返します。 |
bool FK_CLI::fk_MeshTexture::SetTextureCoord | ( | int | tID, |
int | vID, | ||
fk_TexCoord^ | coord | ||
) |
テクスチャ座標設定メソッド2
頂点のテクスチャ座標を設定します。 テクスチャ座標系については fk_TexCoord の説明を参照して下さい。 テクスチャ座標は、一度設定した後でも動的に変更することが可能です。
[in] | tID | 3角形面の ID を入力します。 ID は 0 から始まる整数値で、最大が枚数から1を引いたものとなります。 |
[in] | vID | 頂点IDを入力します。0, 1, 2 のいずれかになります。 それ以外の値を入力した場合はエラーとなり、false を返します。 |
[in] | coord | テクスチャ座標。各成文は 0 以上 1 以下である必要があります。 それ以外の値を入力した場合はエラーとなり、false を返します。 |
bool FK_CLI::fk_MeshTexture::SetTriTextureCoord | ( | int | tID, |
IEnumerable< fk_TexCoord^>^ | array | ||
) |
テクスチャ座標配列設定メソッド
各3角形テクスチャのテクスチャ座標を、配列によって設定します。 テクスチャ座標系については fk_TexCoord の説明を参照して下さい。 テクスチャ座標は、一度設定した後でも動的に変更することが可能です。
[in] | tID | 3角形面の ID を入力します。 ID は 0 から始まる整数値で、最大が枚数から1を引いたものとなります。 |
[in] | array | テクスチャ座標を表す配列を入力します。 配列の先頭3個分のデータが利用されます。 |
fk_TexCoord ^ FK_CLI::fk_MeshTexture::GetTextureCoord | ( | int | tID, |
int | vID | ||
) |
テクスチャ座標参照メソッド
設定されているテクスチャ座標を取得します。
[in] | tID | 3角形面の ID を入力します。 ID は 0 から始まる整数値で、最大が枚数から1を引いたものとなります。 |
[in] | vID | 頂点IDを入力します。0, 1, 2 のいずれかになります。 |
bool FK_CLI::fk_MeshTexture::SetVertexPos | ( | int | tID, |
int | vID, | ||
double | x, | ||
double | y, | ||
double | z | ||
) |
頂点位置ベクトル設定メソッド1
頂点の空間中での位置ベクトルを設定します。 位置ベクトルは、一度設定した後でも動的に変更することが可能です。
[in] | tID | 3角形面の ID を入力します。 ID は 0 から始まる整数値で、最大が枚数から1を引いたものとなります。 |
[in] | vID | 頂点IDを入力します。0, 1, 2 のいずれかになります。 それ以外の値を入力した場合はエラーとなり、false を返します。 |
[in] | x | 頂点位置ベクトルの x 成分 |
[in] | y | 頂点位置ベクトルの y 成分 |
[in] | z | 頂点位置ベクトルの z 成分 |
bool FK_CLI::fk_MeshTexture::SetVertexPos | ( | int | tID, |
int | vID, | ||
fk_Vector^ | pos | ||
) |
頂点位置ベクトル設定メソッド2
頂点の空間中での位置ベクトルを設定します。 位置ベクトルは、一度設定した後でも動的に変更することが可能です。
[in] | tID | 3角形面の ID を入力します。 ID は 0 から始まる整数値で、最大が枚数から1を引いたものとなります。 |
[in] | vID | 頂点IDを入力します。0, 1, 2 のいずれかになります。 それ以外の値を入力した場合はエラーとなり、false を返します。 |
[in] | pos | 頂点位置ベクトル |
bool FK_CLI::fk_MeshTexture::SetTriPos | ( | int | tID, |
IEnumerable< fk_Vector^>^ | array | ||
) |
頂点位置ベクトル配列設定メソッド
各3角形テクスチャの頂点位置ベクトルを、配列によって設定します。 位置ベクトルは、一度設定した後でも動的に変更することが可能です。
[in] | tID | 3角形面の ID を入力します。 ID は 0 から始まる整数値で、最大が枚数から1を引いたものとなります。 |
[in] | array | 頂点の位置ベクトルを表す配列を入力します。 配列の先頭3個分のデータが利用されます。 |
fk_Vector ^ FK_CLI::fk_MeshTexture::GetVertexPos | ( | int | tID, |
int | vID | ||
) |
頂点位置ベクトル参照メソッド
設定されている頂点位置ベクトルを取得します。
[in] | tID | 3角形面の ID を入力します。 ID は 0 から始まる整数値で、最大が枚数から1を引いたものとなります。 |
[in] | vID | 頂点IDを入力します。0, 1, 2 のいずれかになります。 |
void FK_CLI::fk_MeshTexture::PutIndexFaceSet | ( | fk_IndexFaceSet^ | ifs | ) |
fk_IndexFaceSet インスタンスコピーメソッド
現在の形状データを、 fk_IndexFaceSet 型のインスタンスにコピーします。
[in] | ifs | fk_IndexFaceSet 型インスタンスのアドレス。 |
bool FK_CLI::fk_MeshTexture::ReadMQOFile | ( | String^ | fileName, |
String^ | objName, | ||
bool | contFlg | ||
) |
MQOファイル入力メソッド1
MQO 形式のファイルからデータを入力します。 本メソッドが入力を行うのは形状データとテクスチャ座標であり、 画像データの入力は行いません。 画像データ入力は fk_Texture のメンバメソッド等を用いて別途行ってください。
MQOデータには「オブジェクト」という概念があり、 1つの形状データが複数のオブジェクトによって構成されていることがあります。 このメソッドでは、ファイル名とともにオブジェクト名を指定する必要があります。
[in] | fileName | ファイル名 |
[in] | objName | オブジェクト名 |
[in] | contFlg | テクスチャ断絶の設定を指定します。これは、テクスチャ座標が不連続な箇所に対し、 形状の位相を断絶する操作を行うためのものです。 これを true にした場合は断裂操作が行われ、 テクスチャ座標が不連続な箇所が幾何的にも不連続となるように表示されます。 ほとんどの場合は、断裂操作を行った方が良好な描画結果となります。 ただし、断裂操作を行う際に新たな位相要素を生成するため、 本来のデータよりも頂点、稜線、面が若干増加する場合があります。 false にした場合は、断裂操作を行わずに通常のデータ通り読み込みます。 |
bool FK_CLI::fk_MeshTexture::ReadMQOFile | ( | String^ | fileName, |
String^ | objName | ||
) |
MQOファイル入力メソッド2
MQO 形式のファイルからデータを入力します。 本メソッドが入力を行うのは形状データとテクスチャ座標であり、 画像データの入力は行いません。 画像データ入力は fk_Texture のメソッド等を用いて別途行ってください。
MQOデータには「オブジェクト」という概念があり、 1つの形状データが複数のオブジェクトによって構成されていることがあります。 このメソッドでは、ファイル名とともにオブジェクト名を指定する必要があります。
なお、本メソッドは ReadMQOFile(String^, String^, bool) において、 第3引数に true を入力した場合と同義となります。
[in] | fileName | ファイル名 |
[in] | objName | オブジェクト名 |
|
getset |
3角形面数プロパティ
3角形テクスチャ面の枚数の参照・設定を行います。 枚数を変更しても、前に設定した面データは可能な限り保持します。