FineKernelToolKit: FK_CLI::fk_IFSTexture クラス

FineKernelToolKit 4.3.0

読み取り中…
検索中…
一致する文字列を見つけられません
公開メンバ関数 | プロパティ | 全メンバ一覧
FK_CLI::fk_IFSTexture クラス

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

`#include <CLI/FK_CLI/include/IFSTexture_CLI.h>`

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_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
基底クラス 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
void | InitFrameBuffer (void)
| フレームバッファー情報初期化メソッド
基底クラス FK_CLI::fk_Shape に属する継承公開メンバ関数
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
基底クラス 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_FrameBuffer^ | FrameBuffer`[get, set]`
| フレームバッファープロパティ
基底クラス FK_CLI::fk_Shape に属する継承プロパティ
fk_RealShapeType^ | RealShapeType`[get]`
| 形状データ構造プロパティ

## 詳解

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

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

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

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

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

- 長所
  - 描画速度が速い。
  - D3DXファイルの入力に対応している。
- 短所
  - 3角形テクスチャの動的生成ができない。

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

参照
  fk_IndexFaceSet, fk_Texture, fk_MeshTexture

## 構築子と解体子

## ◆ fk_IFSTexture() [1/2]

FK_CLI::fk_IFSTexture::fk_IFSTexture | ( |  | ) |

コンストラクタ1

テクスチャデータを空の状態としてインスタンスを生成します。

## ◆ fk_IFSTexture() [2/2]

FK_CLI::fk_IFSTexture::fk_IFSTexture | ( | fk_Image^ | image | ) |

コンストラクタ2

引数画像をテクスチャ画像とするインスタンスを生成します。

引数

  [in] | image | テクスチャデータ。 null が代入された場合はテクスチャデータを空の状態として生成します。

## ◆ ~fk_IFSTexture()

FK_CLI::fk_IFSTexture::~fk_IFSTexture | ( |  | ) |

デストラクタ

## ◆ !fk_IFSTexture()

FK_CLI::fk_IFSTexture::!fk_IFSTexture | ( |  | ) |

ファイナライザ

## 関数詳解

## ◆ Init()

void FK_CLI::fk_IFSTexture::Init | ( | void |  | ) |

初期化メソッド

テクスチャデータおよびテクスチャ座標のデータを全て破棄し、 初期化を行います。

## ◆ GetTextureCoord()

fk_TexCoord ^ FK_CLI::fk_IFSTexture::GetTextureCoord | ( | int | tID,
|  | int | vID )

テクスチャ座標参照メソッド

テクスチャ座標を参照します。

引数

  [in] | tID | 三角形ID
  [in] | vID | 頂点ID

戻り値
  テクスチャ座標

## ◆ CloneShape()

void FK_CLI::fk_IFSTexture::CloneShape | ( | fk_IFSTexture^ | ifsTex | ) |

形状コピーメソッド

引数として与えられたインスタンス中の形状やテクスチャデータをコピーします。

引数

  [in] | ifsTex | 複写元インスタンス

## ◆ SetTextureCoord()

void FK_CLI::fk_IFSTexture::SetTextureCoord | ( | int | tID,
|  | int | vID,
|  | fk_TexCoord^ | coord )

テクスチャ座標設定メソッド

テクスチャ座標を設定します。

引数

  [in] | tID | 三角形ID
  [in] | vID | 頂点ID
  [in] | coord | テクスチャ座標

## ◆ ReadMQOFile() [1/3]

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 にした場合は、断裂操作を行わずに通常のデータ通り読み込みます。

戻り値
  ファイルの入力に成功した場合 true を、失敗した場合 false を返します。

参照
  fk_IFSTexture::readMQOFile()

## ◆ ReadMQOFile() [2/3]

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 を入力した場合は、すべてのポリゴンを読み込みます。

戻り値
  ファイルの入力に成功した場合 true を、失敗した場合 false を返します。

参照
  fk_IFSTexture::readMQOFile()

## ◆ ReadMQOFile() [3/3]

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()

## ◆ ReadD3DXFile() [1/2]

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 を入力した場合は、すべてのポリゴンを読み込みます。

戻り値
  ファイルの入力に成功した場合 true を、失敗した場合 false を返します。

## ◆ ReadD3DXFile() [2/2]

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 を返します。

## ◆ MoveVPosition() [1/4]

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 を返します。

## ◆ MoveVPosition() [2/4]

bool FK_CLI::fk_IFSTexture::MoveVPosition | ( | int | vID,
|  | const fk_Vector^ | pos )

頂点移動メソッド2

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

引数

  [in] | vID | 頂点ID
  [in] | pos | 移動位置ベクトル

戻り値
  頂点移動が成功したら true を、失敗したら false を返します。

## ◆ MoveVPosition() [3/4]

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 を返します。

## ◆ MoveVPosition() [4/4]

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 を返します。

## プロパティ詳解

## ◆ IFS

fk_IndexFaceSet^ FK_CLI::fk_IFSTexture::IFS

get

形状データプロパティ

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

## ◆ AnimationTime

double FK_CLI::fk_IFSTexture::AnimationTime

set

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

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

## ◆ BVHMotion

fk_BVHMotion^ FK_CLI::fk_IFSTexture::BVHMotion

set

BVH データプロパティ

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

## ◆ ConnectMode

bool FK_CLI::fk_IFSTexture::ConnectMode

getset

法線連続性プロパティ

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

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

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