FineKernelToolKit  3.1.0
公開メンバ関数 | プロパティ | 全メンバ一覧
FK_CLI::fk_IFSTexture クラス

IFSテクスチャを生成、管理するクラス [詳解]

+ FK_CLI::fk_IFSTexture の継承関係図
+ FK_CLI::fk_IFSTexture 連携図

公開メンバ関数

 fk_IFSTexture ()
 コンストラクタ1 [詳解]
 
 fk_IFSTexture (fk_Image^ image)
 コンストラクタ2 [詳解]
 
 ~fk_IFSTexture ()
 デストラクタ [詳解]
 
 !fk_IFSTexture ()
 ファイナライザ [詳解]
 
void Init (void)
 初期化メソッド [詳解]
 
fk_TexCoordGetTextureCoord (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 [詳解]
 
- 基底クラス FK_CLI::fk_Texture に属する継承公開メンバ関数
bool ReadBMP (String^ fileName)
 BMP ファイル入力メソッド [詳解]
 
bool ReadPNG (String^ fileName)
 PNG ファイル入力メソッド [詳解]
 
bool ReadJPG (String^ fileName)
 JPEG ファイル入力メソッド [詳解]
 
void FillColor (fk_Color^ color)
 一様色初期化メソッド1 [詳解]
 
- 基底クラス FK_CLI::fk_Shape に属する継承公開メンバ関数
void ClearMaterial (void)
 パレット初期化メソッド [詳解]
 
void PushPalette (fk_Material^ mat)
 マテリアル追加メソッド [詳解]
 
void SetPalette (fk_Material^ mat, int ID)
 マテリアル設定メソッド [詳解]
 
fk_MaterialGetMaterial (int ID)
 マテリアル取得メソッド [詳解]
 
- 基底クラス FK_CLI::fk_Attribute に属する継承公開メンバ関数
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_CLI::fk_Texture に属する継承プロパティ
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_CLI::fk_Shape に属する継承プロパティ
fk_RealShapeType^  RealShapeType [get]
 形状データ構造プロパティ [詳解]
 
fk_Palette^  Palette [get]
 パレットプロパティ [詳解]
 
fk_MaterialMode MaterialMode [get, set]
 マテリアルモード設定メソッド [詳解]
 
int MaterialID [get, set]
 オブジェクトマテリアル ID プロパティ [詳解]
 
int PaletteSize [get]
 パレット中のマテリアル格納数プロパティ [詳解]
 
cli::array< fk_Material^ >^ MaterialVector [get]
 マテリアル配列取得メソッド [詳解]
 

詳解

IFSテクスチャを生成、管理するクラス

このクラスは、「IFSテクスチャ」を制御する機能を提供します。 IFSテクスチャとは、多数の三角形テクスチャをひとまとめにした形状のことで、 実質的には fk_IndexFaceSet クラスに対してテクスチャを付加したものです。 このクラスの主な用途は、 他のモデラー等で作成した形状データファイルを読み込んで表示するというものです。 また、 fk_IndexFaceSet クラスと同様に形状のアニメーションを入力することも可能です。

なお、このクラスでテクスチャ付きの形状データを読み込む場合、 テクスチャデータは 1 個のファイルで構成されていなければならないという制限があります。

実際に利用する際には、まずテクスチャ画像データを設定する必要があります。 画像データの入力や生成については、 fk_Texture のマニュアルを参照して下さい。 形状データの入力と画像データの設定は、どちらが先であっても問題ありません。

本クラスと同様の機能を持つクラスとして、 fk_MeshTexture があります。 fk_MeshTexture クラスと比較した、 本クラスの長所と短所をまとめると以下のようになります。

ほとんどの用途においては fk_IFSTexture の方が有利と言えますが、 3角形テクスチャの動的生成を行いたい場合は fk_MeshTexture の利用を検討する価値があると言えます。

参照
fk_IndexFaceSet, fk_Texture, 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]materialIDMQOデータではマテリアルを複数設定することができ、 各ポリゴンに対してどのマテリアルを割り振るかのIDが設定されています。 この引数にマテリアルIDを指定すると、そのIDを持つポリゴンのみを読み込みます。 materialID に -1 を入力した場合は、すべてのポリゴンを読み込みます。
[in]contFlgテクスチャ断絶の設定を指定します。これは、テクスチャ座標が不連続な箇所に対し、 形状の位相を断絶する操作を行うためのものです。 これを true にした場合は断裂操作が行われ、 テクスチャ座標が不連続な箇所が幾何的にも不連続となるように表示されます。 ほとんどの場合は、断裂操作を行った方が良好な描画結果となります。 ただし、断裂操作を行う際に新たな位相要素を生成するため、 本来のデータよりも頂点、稜線、面が若干増加する場合があります。 false にした場合は、断裂操作を行わずに通常のデータ通り読み込みます。
戻り値
ファイルの入力に成功した場合 true を、失敗した場合 false を返します。
参照
fk_IFSTexture::readMQOFile()
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]materialIDMQOデータではマテリアルを複数設定することができ、 各ポリゴンに対してどのマテリアルを割り振るかのIDが設定されています。 この引数にマテリアルIDを指定すると、そのIDを持つポリゴンのみを読み込みます。 materialID に -1 を入力した場合は、すべてのポリゴンを読み込みます。
戻り値
ファイルの入力に成功した場合 true を、失敗した場合 false を返します。
参照
fk_IFSTexture::readMQOFile()
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オブジェクト名
戻り値
ファイルの入力に成功した場合 true を、失敗した場合 false を返します。
参照
fk_IFSTexture::readMQOFile()
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]materialIDD3DXデータではマテリアルを複数設定することができ、 各ポリゴンに対してどのマテリアルを割り振るかのIDが設定されています。 この引数にマテリアルIDを指定すると、そのIDを持つポリゴンのみを読み込みます。 materialID に -1 を入力した場合は、すべてのポリゴンを読み込みます。
戻り値
ファイルの入力に成功した場合 true を、失敗した場合 false を返します。
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 形式では、オブジェクト名を省略することが許容されています。 そのような場合は、この引数に空文字列 ( "" ) を入れてください。 この場合、ファイル中で最初に存在するオブジェクトのデータを入力します。
戻り値
ファイルの入力に成功した場合 true を、失敗した場合 false を返します。
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 番号
戻り値
頂点移動が成功したら true を、失敗したら false を返します。
bool FK_CLI::fk_IFSTexture::MoveVPosition ( int  vID,
const fk_Vector pos 
)

頂点移動メソッド2

形状の頂点を移動します。

引数
[in]vID頂点ID
[in]pos移動位置ベクトル
戻り値
頂点移動が成功したら true を、失敗したら false を返します。
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 番号
戻り値
頂点移動が成功したら true を、失敗したら false を返します。
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 成分
戻り値
頂点移動が成功したら true を、失敗したら false を返します。

プロパティ詳解

fk_IndexFaceSet^ FK_CLI::fk_IFSTexture::IFS
get

形状データプロパティ

fk_IFSTexture では、形状データとして fk_IndexFaceSet クラスのインスタンスを保持しています。 このプロパティは、そのインスタンスを参照します。 ここで得たインスタンスに対して形状を操作することで、 fk_IFSTexture による形状の操作が可能となります。

double FK_CLI::fk_IFSTexture::AnimationTime
set

アニメーション時間プロパティ

D3DX形式の入力や BVH データ設定によってアニメーションが設定されていた場合、 形状を指定した時間に対応する状態に設定します。

fk_BVHMotion^ FK_CLI::fk_IFSTexture::BVHMotion
set

BVH データプロパティ

入力した形状データに対し、 fk_BVHMotion によるのモーションデータを設定します。

bool FK_CLI::fk_IFSTexture::ConnectMode
getset

法線連続性プロパティ

入力する形状に対して法線連続性の参照・設定を行います。 true の場合有効、false の場合無効となります。

法線連続性を有効にした場合、 形状全体に対してスムースシェーディングの効果を有効とします。 この場合は、各ポリゴン同士の境界がわかりづらくなります。 法線連続性を無効にした場合、 ポリゴン同士のスムースシェーディングは行いません。 そのため、各ポリゴン同士の描画が明確となります。

なお、本メソッドによる設定はファイル入力よりも前に行う必要があります。 既に入力したデータに対しては適用されません。