FineKernelToolKit: FK_CLI::fk_IndexFaceSet クラス

FineKernelToolKit 4.3.0

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

インデックスフェースセットによる任意形状を生成、管理するクラス [詳解]

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

FK_CLI::fk_IndexFaceSet の継承関係図
[凡例]
FK_CLI::fk_IndexFaceSet 連携図
[凡例]

## 公開メンバ関数

| fk_IndexFaceSet ()
| コンストラクタ
| ~fk_IndexFaceSet ()
| デストラクタ
| !fk_IndexFaceSet ()
| ファイナライザ
形状ファイル・形状データ入力メソッド
bool | ReadSMFFile (String^ name)
| SMFファイル入力メソッド
bool | ReadVRMLFile (String^ name, bool materialFlg, bool solidFlg)
| VRML ファイル入力メソッド1
bool | ReadVRMLFile (String^ name, bool materialFlg)
| VRML ファイル入力メソッド2
bool | ReadVRMLFile (String^ name)
| VRML ファイル入力メソッド3
bool | ReadSTLFile (String^ name, bool solidFlg, double tolerance)
| STL ファイル入力メソッド1
bool | ReadSTLFile (String^ name, bool solidFlg)
| STL ファイル入力メソッド2
bool | ReadSTLFile (String^ name)
| STL ファイル入力メソッド3
bool | ReadHRCFile (String^ name)
| HRCファイル入力メソッド
bool | ReadRDSFile (String^ name, bool solidFlg)
| RDSファイル入力メソッド1
bool | ReadRDSFile (String^ name)
| RDSファイル入力メソッド2
bool | ReadDXFFile (String^ name, bool solidFlg)
| DXFファイル入力メソッド1
bool | ReadDXFFile (String^ name)
| DXFファイル入力メソッド1
bool | ReadMQOFile (String^ fileName, String^ objName, bool solidFlg, bool contFlg, bool materialFlg)
| MQOファイル入力メソッド1-1
bool | ReadMQOFile (String^ fileName, String^ objName, bool solidFlg, bool contFlg)
| MQOファイル入力メソッド1-2
bool | ReadMQOFile (String^ fileName, String^ objName, bool solidFlg)
| MQOファイル入力メソッド1-3
bool | ReadMQOFile (String^ fileName, String^ objName)
| MQOファイル入力メソッド1-4
bool | ReadMQOFile (String^ fileName, String^ objName, int materialID, bool solidFlg, bool contFlg, bool materialFlg)
| MQOファイル入力メソッド2-1
bool | ReadMQOFile (String^ fileName, String^ objName, int materialID, bool solidFlg, bool contFlg)
| MQOファイル入力メソッド2-2
bool | ReadMQOFile (String^ fileName, String^ objName, int materialID, bool solidFlg)
| MQOファイル入力メソッド2-3
bool | ReadMQOFile (String^ fileName, String^ objName, int materialID)
| MQOファイル入力メソッド2-4
bool | ReadMQOData (IEnumerable< Byte >^ buffer, String^ objName, bool solidFlg, bool contFlg, bool materialFlg)
| MQOデータ入力メソッド1-1
bool | ReadMQOData (IEnumerable< Byte >^ buffer, String^ objName, bool solidFlg, bool contFlg)
| MQOデータ入力メソッド1-2
bool | ReadMQOData (IEnumerable< Byte >^ buffer, String^ objName, bool solidFlg)
| MQOデータ入力メソッド1-3
bool | ReadMQOData (IEnumerable< Byte >^ buffer, String^ objName)
| MQOデータ入力メソッド1-4
bool | ReadMQOData (IEnumerable< Byte >^ buffer, String^ objName, int materialID, bool solidFlg, bool contFlg, bool materialFlg)
| MQOデータ入力メソッド2-1
bool | ReadMQOData (IEnumerable< Byte >^ buffer, String^ objName, int materialID, bool solidFlg, bool contFlg)
| MQOデータ入力メソッド2-2
bool | ReadMQOData (IEnumerable< Byte >^ buffer, String^ objName, int materialID, bool solidFlg)
| MQOデータ入力メソッド2-3
bool | ReadMQOData (IEnumerable< Byte >^ buffer, String^ objName, int materialID)
| MQOデータ入力メソッド2-4
bool | ReadD3DXFile (String^ fileName, String^ objName, bool solidFlg)
| DirectX (D3DX) ファイル入力メソッド1-1
bool | ReadD3DXFile (String^ fileName, String^ objName)
| DirectX (D3DX) ファイル入力メソッド1-2
bool | ReadD3DXFile (String^ fileName, String^ objName, int materialID, bool solidFlg)
| DirectX (D3DX) ファイル入力メソッド2-1
bool | ReadD3DXFile (String^ fileName, String^ objName, int materialID)
| DirectX (D3DX) ファイル入力メソッド2-2
形状ファイル・形状データ出力メソッド
bool | WriteVRMLFile (String^ fileName, fk_Material^ material, bool triFlg)
| VRML ファイル出力メソッド1-1
bool | WriteVRMLFile (String^ fileName, fk_Material^ material)
| VRML ファイル出力メソッド1-2
bool | WriteVRMLFile (String^ fileName)
| VRML ファイル出力メソッド1-3
bool | WriteVRMLFile (String^ fileName, IEnumerable< double >^ time, IEnumerable< fk_Vector^>^ pos, fk_Material^ material, bool triFlg)
| VRML ファイル出力メソッド2-1
bool | WriteVRMLFile (String^ fileName, IEnumerable< double >^ time, IEnumerable< fk_Vector^>^ pos, fk_Material^ material)
| VRML ファイル出力メソッド2-2
bool | WriteVRMLFile (String^ fileName, IEnumerable< double >^ time, IEnumerable< fk_Vector^>^ pos)
| VRML ファイル出力メソッド2-3
bool | WriteSTLFile (String^ fileName)
| STL ファイル出力メソッド
bool | WriteDXFFile (String^ fileName, bool triFlg)
| DXF ファイル出力メソッド1
bool | WriteDXFFile (String^ fileName)
| DXF ファイル出力メソッド1
bool | WriteMQOFile (String^ fileName)
| MQO ファイル出力メソッド
形状情報参照メソッド
fk_Vector ^ | GetPosVec (int vertexID)
| 頂点位置ベクトル参照メソッド
cli::array< int > ^ | GetFaceData (int faceID)
| 頂点 ID 配列参照メソッド
int | GetFaceData (int faceID, int vertexNum)
| 頂点 ID 参照メソッド
fk_Vector ^ | GetPNorm (int faceID, int order)
| 面法線ベクトル取得メソッド1
fk_Vector ^ | GetPNorm (int faceID)
| 面法線ベクトル取得メソッド2
fk_Vector ^ | GetVNorm (int vertexID, int order)
| 頂点法線ベクトル取得メソッド1
fk_Vector ^ | GetVNorm (int vertexID)
| 頂点法線ベクトル取得メソッド2
int | GetElemMaterialID (int faceID)
| マテリアルID取得メソッド
形状操作メソッド
bool | MoveVPosition (int vertexID, fk_Vector^ pos, int order)
| 頂点移動メソッド1-1
bool | MoveVPosition (int vertexID, fk_Vector^ pos)
| 頂点移動メソッド1-2
bool | MoveVPosition (int vertexID, double x, double y, double z, int order)
| 頂点移動メソッド2-1
bool | MoveVPosition (int vertexID, double x, double y, double z)
| 頂点移動メソッド2-1
bool | MoveVPosition (int vertexID, IEnumerable< double >^ array, int order)
| 頂点移動メソッド3-1
bool | MoveVPosition (int vertexID, IEnumerable< double >^ array)
| 頂点移動メソッド3-2
void | MakeIFSet (int faceNum, int polyNum, IEnumerable< int >^ IFSet, int vertexNum, IEnumerable< fk_Vector^>^ posArray, int order)
| 任意形状生成メソッド1
void | MakeIFSet (int faceNum, int polyNum, IEnumerable< int >^ IFSet, int vertexNum, IEnumerable< fk_Vector^>^ posArray)
| 任意形状生成メソッド2
void | MakeIFSet (int faceNum, int polyNum, IEnumerable< int >^ IFSet, int vertexNum, IEnumerable< fk_Vector^>^ posArray, bool smoothMode)
| 任意形状生成メソッド3
void | MakeIFSet (int faceNum, int polyNum, IEnumerable< int >^ IFSet, int vertexNum, IEnumerable< fk_Vector^>^ posArray, bool smoothMode, int order)
| 任意形状生成メソッド4
void | MakeIFSet (List< List< int >^ >^ faceArray, List< fk_Vector^>^ posArray, bool smoothMode, int order)
| 任意形状生成メソッド5
void | MakeIFSet (List< List< int >^ >^ faceArray, List< fk_Vector^>^ posArray, bool smoothMode)
| 任意形状生成メソッド6
void | MakeIFSet (List< List< int >^ >^ faceArray, List< fk_Vector^>^ posArray)
| 任意形状生成メソッド7
bool | SetPNorm (int faceID, fk_Vector^ norm, int order)
| 面法線ベクトル設定メソッド1
bool | SetPNorm (int faceID, fk_Vector^ norm)
| 面法線ベクトル設定メソッド2
bool | SetVNorm (int vertexID, fk_Vector^ norm, int order)
| 頂点法線ベクトル設定メソッド1
bool | SetVNorm (int vertexID, fk_Vector^ norm)
| 頂点法線ベクトル設定メソッド1
bool | SetElemMaterialID (int faceID, int materialID)
| マテリアルID設定メソッド
void | Flush (void)
| 法線ベクトル強制計算メソッド
直方体形状制御メソッド
void | MakeBlock (double x, double y, double z)
| 直方体生成メソッド
void | SetBlockSize (double x, double y, double z)
| 直方体辺長変更メソッド
void | SetBlockSize (double length, fk_Axis axis)
| 直方体個別辺長設定メソッド
void | SetBlockScale (double scale)
| 直方体全体拡大縮小メソッド
void | SetBlockScale (double scale, fk_Axis axis)
| 直方体軸方向拡大縮小メソッド
void | SetBlockScale (double x, double y, double z)
| 直方体軸方向個別拡大縮小メソッド
円形状制御メソッド
void | MakeCircle (int div, double rad)
| 円形状生成メソッド
void | SetCircleRadius (double rad)
| 円形状半径設定メソッド
void | SetCircleDivide (int div)
| 円形状分割数設定メソッド
void | SetCircleScale (double scale)
| 円形状拡大縮小メソッド
球形状制御メソッド
void | MakeSphere (int div, double rad)
| 球形状生成メソッド
void | SetSphereRadius (double rad)
| 球形状半径設定メソッド
void | SetSphereDivide (int div)
| 球形状分割数設定メソッド
void | SetSphereScale (double scale)
| 球形状拡大縮小メソッド
正多角柱(円柱)形状制御メソッド
void | MakePrism (int div, double top, double bottom, double height)
| 正多角柱(円柱)形状生成メソッド
void | SetPrismDivide (int div)
| 正多角柱(円柱)角数設定メソッド
void | SetPrismTopRadius (double top)
| 正多角柱(円柱)上面半径設定メソッド
void | SetPrismBottomRadius (double bottom)
| 正多角柱(円柱)角数設定メソッド
void | SetPrismHeight (double height)
| 正多角柱(円柱)高さ設定メソッド
正多角錐(円錐)形状制御メソッド
void | MakeCone (int div, double rad, double height)
| 正多角錐(円錐)形状生成メソッド
void | SetConeDivide (int div)
| 正多角錐(円錐)角数設定メソッド
void | SetConeRadius (double rad)
| 正多角錐(円錐)底面半径設定メソッド
void | SetConeHeight (double height)
| 正多角錐(円錐)高さ設定メソッド
カプセル型形状制御メソッド
void | MakeCapsule (int div, double len, double rad)
| カプセル型形状生成メソッド
void | SetCapsuleSize (double len, double rad)
| カプセル型形状寸法設定メソッド
形状コピー操作メソッド
void | PutSolid (fk_Solid^ solid)
| fk_Solid 出力メソッド
void | CloneShape (fk_IndexFaceSet^ ifs)
| 形状コピーメソッド
基底クラス 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 型である属性消去メソッド

## プロパティ

int | PosSize`[get]`
| 頂点数プロパティ
int | FaceSize`[get]`
| 面数プロパティ
double | AnimationTime`[set]`
| アニメーション時間プロパティ
fk_BVHMotion^ | BVHMotion`[set]`
| BVHデータプロパティ
基底クラス FK_CLI::fk_Shape に属する継承プロパティ
fk_RealShapeType^ | RealShapeType`[get]`
| 形状データ構造プロパティ

## 詳解

インデックスフェースセットによる任意形状を生成、管理するクラス

このクラスは、 「インデックスフェースセット」による任意形状を制御する機能を提供します。

fk_IndexFaceSet の主な用途は、3次元形状データファイルからデータを読み込み、 それを表示することです。以下のデータフォーマットをサポートしています。

- VRML 形式
- STL 形式
- SMF 形式
- HRC 形式
- RDS (Ray Dream Studio) 形式
- DXF 形式
- MQO (Metasequoia) 形式
- D3DX (DirectX) 形式

また、これらのデータファイル入力の他に、 頂点座標データとインデックスフェースデータから 形状を自前で生成することも可能です。 ただし、作成できる形状には制限があります。 この機能の詳細は makeIFSet() を参照して下さい。

入力した形状に対し、各頂点を移動してアニメーションを表現することが可能です。 この機能の詳細は MoveVPosition() を参照して下さい。 位相変化を伴う変形は、 fk_IndexFaceSet では行うことができません。 位相変化を伴う変形を行うには、 fk_Solid クラスを用いてください。

D3DX 形式ではボーンアニメーションをサポートしていますが、 その再生を行うことも可能です。 この機能の詳細は setAnimationTime() を参照して下さい。 また、ボーンアニメーションデータのみのデータとして BVH 形式を入力し、 アニメーションをすることも可能になっています。 この機能の詳細は setBVHMotion() を参照して下さい。

任意の形状を表現するクラスとして、 fk_IndexFaceSet の他に fk_Solid があります。 fk_IndexFaceSet は、 fk_Solid と比較して高速な描画が行えるという長所があります。 しかしその一方で、 fk_IndexFaceSet は面が3角形か4角形のみ(そして混在は不可) という制限があります。 また、位相変化を伴う変形には対応していません。 より高度な形状表現や位相変化を伴う変形を利用する場合は fk_Solid を利用して下さい。

fk_IndexFaceSet 自体は、テクスチャ描画に対応していません。 テクスチャによる形状描画を行いたい場合は、 fk_IFSTexture クラスを用いて下さい。

参照
  fk_IFSTexture, fk_Solid, fk_Shape, fk_Model, fk_Block, fk_Circle, fk_Sphere, fk_Prism, fk_Cone, fk_Capsule

## 構築子と解体子

## ◆ fk_IndexFaceSet()

FK_CLI::fk_IndexFaceSet::fk_IndexFaceSet | ( |  | ) |

コンストラクタ

## ◆ ~fk_IndexFaceSet()

FK_CLI::fk_IndexFaceSet::~fk_IndexFaceSet | ( |  | ) |

デストラクタ

## ◆ !fk_IndexFaceSet()

FK_CLI::fk_IndexFaceSet::!fk_IndexFaceSet | ( |  | ) |

ファイナライザ

## 関数詳解

## ◆ ReadSMFFile()

bool FK_CLI::fk_IndexFaceSet::ReadSMFFile | ( | String^ | name | ) |

SMFファイル入力メソッド

SMF形式のファイルからデータを入力します。

引数

  [in] | name | ファイル名

戻り値
  成功すれば true を、失敗すれば false を返します。

## ◆ ReadVRMLFile() [1/3]

bool FK_CLI::fk_IndexFaceSet::ReadVRMLFile | ( | String^ | name,
|  | bool | materialFlg,
|  | bool | solidFlg )

VRML ファイル入力メソッド1

VRML形式のファイルからデータを入力します。 VRMLでは、形状を表す様々なノードがありますが、 本メソッドが対応しているのは「IndexedFaceSet」 ノードに記述された形状のみです。

引数

  [in] | name | ファイル名
  [in] | materialFlg | true の場合、 VRMLファイル中で設定されているマテリアル情報を入力します。 false の場合は、マテリアル情報を無視します。
  [in] | solidFlg | true の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 入力データのままインデックスフェースセットを構築します。

戻り値
  成功すれば true を、失敗すれば false を返します。

覚え書き
  VRML形式は、1994年に策定された通称「VRML1.0」と、 1997年に策定された「VRML97」の2種類があり、 VRML97は「VRML2.0」とも呼ばれます。 本メソッドでは入力フォーマットとして VRML2.0 を想定しています。
  VRMLは文法解釈、 特にセパレータの扱い方についてはあまり厳密になっておらず、 様々なデータによって異なる解釈がなされているようです。 そのため、構文解析がうまくいかずに入力失敗する場合がありえます。

## ◆ ReadVRMLFile() [2/3]

bool FK_CLI::fk_IndexFaceSet::ReadVRMLFile | ( | String^ | name,
|  | bool | materialFlg )

VRML ファイル入力メソッド2

VRML形式のファイルからデータを入力します。 VRMLでは、形状を表す様々なノードがありますが、 本メソッドが対応しているのは「IndexedFaceSet」 ノードに記述された形状のみです。

なお、本メソッドは ReadVRMLFile(String^, bool, bool) において、 第3引数に true を入力した場合と同義となります。

引数

  [in] | name | ファイル名
  [in] | materialFlg | true の場合、 VRMLファイル中で設定されているマテリアル情報を入力します。 false の場合は、マテリアル情報を無視します。

戻り値
  成功すれば true を、失敗すれば false を返します。

覚え書き
  VRML形式は、1994年に策定された通称「VRML1.0」と、 1997年に策定された「VRML97」の2種類があり、 VRML97は「VRML2.0」とも呼ばれます。 本メソッドでは入力フォーマットとして VRML2.0 を想定しています。
  VRMLは文法解釈、 特にセパレータの扱い方についてはあまり厳密になっておらず、 様々なデータによって異なる解釈がなされているようです。 そのため、構文解析がうまくいかずに入力失敗する場合がありえます。

## ◆ ReadVRMLFile() [3/3]

bool FK_CLI::fk_IndexFaceSet::ReadVRMLFile | ( | String^ | name | ) |

VRML ファイル入力メソッド3

VRML形式のファイルからデータを入力します。 VRMLでは、形状を表す様々なノードがありますが、 本メソッドが対応しているのは「IndexedFaceSet」 ノードに記述された形状のみです。

なお、本メソッドは ReadVRMLFile(String^, bool, bool) において、 第2引数と第3引数で共に true を入力した場合と同義となります。

引数

  [in] | name | ファイル名

戻り値
  成功すれば true を、失敗すれば false を返します。

覚え書き
  VRML形式は、1994年に策定された通称「VRML1.0」と、 1997年に策定された「VRML97」の2種類があり、 VRML97は「VRML2.0」とも呼ばれます。 本メソッドでは入力フォーマットとして VRML2.0 を想定しています。
  VRMLは文法解釈、 特にセパレータの扱い方についてはあまり厳密になっておらず、 様々なデータによって異なる解釈がなされているようです。 そのため、構文解析がうまくいかずに入力失敗する場合がありえます。

## ◆ ReadSTLFile() [1/3]

bool FK_CLI::fk_IndexFaceSet::ReadSTLFile | ( | String^ | name,
|  | bool | solidFlg,
|  | double | tolerance )

STL ファイル入力メソッド1

STL形式のファイルからデータを入力します。 対応しているのは面データのみです。 また、以下の条件に当てはまるデータは fk_IndexFaceSet では入力できません。

- 5以上の角数である面が存在する。
- 3角形面と4角形面が混在している。

引数

  [in] | name | ファイル名
  [in] | solidFlg | true の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。
  [in] | tolerance | solidFlg で true を指定した場合、 頂点同士が同一かどうかを判断するための距離許容誤差を指定します。 solidFlg が false であった場合、この値は無視されます。

戻り値
  成功すれば true を、失敗すれば false を返します。

## ◆ ReadSTLFile() [2/3]

bool FK_CLI::fk_IndexFaceSet::ReadSTLFile | ( | String^ | name,
|  | bool | solidFlg )

STL ファイル入力メソッド2

STL形式のファイルからデータを入力します。 対応しているのは面データのみです。 また、以下の条件に当てはまるデータは fk_IndexFaceSet では入力できません。

- 5以上の角数である面が存在する。
- 3角形面と4角形面が混在している。

なお、本メソッドは ReadSTLFile(String^, bool, double) において、 第3引数に 1.0e-0.8 を入力した場合と同義となります。

引数

  [in] | name | ファイル名
  [in] | solidFlg | true の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。

戻り値
  成功すれば true を、失敗すれば false を返します。

## ◆ ReadSTLFile() [3/3]

bool FK_CLI::fk_IndexFaceSet::ReadSTLFile | ( | String^ | name | ) |

STL ファイル入力メソッド3

STL形式のファイルからデータを入力します。 対応しているのは面データのみです。 また、以下の条件に当てはまるデータは fk_IndexFaceSet では入力できません。

- 5以上の角数である面が存在する。
- 3角形面と4角形面が混在している。

なお、本メソッドは ReadSTLFile(String^, bool, double) において、 第2引数に true、第3引数に 1.0e-0.8 を入力した場合と同義となります。

引数

  [in] | name | ファイル名

戻り値
  成功すれば true を、失敗すれば false を返します。

## ◆ ReadHRCFile()

bool FK_CLI::fk_IndexFaceSet::ReadHRCFile | ( | String^ | name | ) |

HRCファイル入力メソッド

HRC形式のファイルからデータを入力します。

引数

  [in] | name | ファイル名

戻り値
  成功すれば true を、失敗すれば false を返します。

## ◆ ReadRDSFile() [1/2]

bool FK_CLI::fk_IndexFaceSet::ReadRDSFile | ( | String^ | name,
|  | bool | solidFlg )

RDSファイル入力メソッド1

RDS (Ray Dream Studio) 形式のファイルからデータを入力します。

引数

  [in] | name | ファイル名
  [in] | solidFlg | true の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。

戻り値
  成功すれば true を、失敗すれば false を返します。

## ◆ ReadRDSFile() [2/2]

bool FK_CLI::fk_IndexFaceSet::ReadRDSFile | ( | String^ | name | ) |

RDSファイル入力メソッド2

RDS (Ray Dream Studio) 形式のファイルからデータを入力します。 本メソッドは、 ReadRDSFile(String^, bool) において、 第2引数に true を入力した場合と同義となります。

引数

  [in] | name | ファイル名

戻り値
  成功すれば true を、失敗すれば false を返します。

## ◆ ReadDXFFile() [1/2]

bool FK_CLI::fk_IndexFaceSet::ReadDXFFile | ( | String^ | name,
|  | bool | solidFlg )

DXFファイル入力メソッド1

DXF 形式のファイルからデータを入力します。

引数

  [in] | name | ファイル名
  [in] | solidFlg | true の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。

戻り値
  成功すれば true を、失敗すれば false を返します。

## ◆ ReadDXFFile() [2/2]

bool FK_CLI::fk_IndexFaceSet::ReadDXFFile | ( | String^ | name | ) |

DXFファイル入力メソッド1

DXF 形式のファイルからデータを入力します。 本メソッドは、 ReadDXFFile(String^, bool) において、 第2引数に true を入力した場合と同義となります。

引数

  [in] | name | ファイル名

戻り値
  成功すれば true を、失敗すれば false を返します。

## ◆ ReadMQOFile() [1/8]

bool FK_CLI::fk_IndexFaceSet::ReadMQOFile | ( | String^ | fileName,
|  | String^ | objName,
|  | bool | solidFlg,
|  | bool | contFlg,
|  | bool | materialFlg )

MQOファイル入力メソッド1-1

MQO 形式のファイルからデータを入力します。

本メソッドは、テクスチャ用のデータの入力は行いません。 テクスチャデータも併せて表示を行いたい場合は、 fk_IFSTexture クラスを利用して下さい。

MQOデータには「オブジェクト」という概念があり、 1つの形状データが複数のオブジェクトによって構成されていることがあります。 本メソッドでは、ファイル名とともにオブジェクト名を指定する必要があります。

引数

  [in] | fileName | ファイル名
  [in] | objName | オブジェクト名
  [in] | solidFlg | true の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。
  [in] | contFlg | テクスチャ断絶の設定を指定します。これは、テクスチャ座標が不連続な箇所に対し、 形状の位相を断絶する操作を行うためのものです。 これを true にした場合は断裂操作が行われ、 テクスチャ座標が不連続な箇所が幾何的にも不連続となるように表示されます。 ほとんどの場合は、断裂操作を行った方が良好な描画結果となります。 ただし、断裂操作を行う際に新たな位相要素を生成するため、 本来のデータよりも頂点、稜線、面が若干増加する場合があります。 false にした場合は、断裂操作を行わずに通常のデータ通り読み込みます。
  [in] | materialFlg | true の場合、MQOファイル中で設定されているマテリアル情報を入力します。 false の場合は、マテリアル情報を無視します。

戻り値
  成功すれば true を、失敗すれば false を返します。

参照
  ReadMQOData(), fk_IFSTexture::ReadMQOFile()

## ◆ ReadMQOFile() [2/8]

bool FK_CLI::fk_IndexFaceSet::ReadMQOFile | ( | String^ | fileName,
|  | String^ | objName,
|  | bool | solidFlg,
|  | bool | contFlg )

MQOファイル入力メソッド1-2

MQO 形式のファイルからデータを入力します。

本メソッドは、テクスチャ用のデータの入力は行いません。 テクスチャデータも併せて表示を行いたい場合は、 fk_IFSTexture クラスを利用して下さい。

MQOデータには「オブジェクト」という概念があり、 1つの形状データが複数のオブジェクトによって構成されていることがあります。 本メソッドでは、ファイル名とともにオブジェクト名を指定する必要があります。

なお、本メソッドは ReadMQOFile(String^, String^, bool, bool, bool) において、 第5引数に false を入力した場合と同義となります。

引数

  [in] | fileName | ファイル名
  [in] | objName | オブジェクト名
  [in] | solidFlg | true の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。
  [in] | contFlg | テクスチャ断絶の設定を指定します。これは、テクスチャ座標が不連続な箇所に対し、 形状の位相を断絶する操作を行うためのものです。 これを true にした場合は断裂操作が行われ、 テクスチャ座標が不連続な箇所が幾何的にも不連続となるように表示されます。 ほとんどの場合は、断裂操作を行った方が良好な描画結果となります。 ただし、断裂操作を行う際に新たな位相要素を生成するため、 本来のデータよりも頂点、稜線、面が若干増加する場合があります。 false にした場合は、断裂操作を行わずに通常のデータ通り読み込みます。

戻り値
  成功すれば true を、失敗すれば false を返します。

参照
  ReadMQOData(), fk_IFSTexture::ReadMQOFile()

## ◆ ReadMQOFile() [3/8]

bool FK_CLI::fk_IndexFaceSet::ReadMQOFile | ( | String^ | fileName,
|  | String^ | objName,
|  | bool | solidFlg )

MQOファイル入力メソッド1-3

MQO 形式のファイルからデータを入力します。

本メソッドは、テクスチャ用のデータの入力は行いません。 テクスチャデータも併せて表示を行いたい場合は、 fk_IFSTexture クラスを利用して下さい。

MQOデータには「オブジェクト」という概念があり、 1つの形状データが複数のオブジェクトによって構成されていることがあります。 本メソッドでは、ファイル名とともにオブジェクト名を指定する必要があります。

なお、本メソッドは ReadMQOFile(String^, String^, bool, bool, bool) において、 第4引数に true を、第5引数に false を入力した場合と同義となります。

引数

  [in] | fileName | ファイル名
  [in] | objName | オブジェクト名
  [in] | solidFlg | true の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。

戻り値
  成功すれば true を、失敗すれば false を返します。

参照
  ReadMQOData(), fk_IFSTexture::ReadMQOFile()

## ◆ ReadMQOFile() [4/8]

bool FK_CLI::fk_IndexFaceSet::ReadMQOFile | ( | String^ | fileName,
|  | String^ | objName )

MQOファイル入力メソッド1-4

MQO 形式のファイルからデータを入力します。

本メソッドは、テクスチャ用のデータの入力は行いません。 テクスチャデータも併せて表示を行いたい場合は、 fk_IFSTexture クラスを利用して下さい。

MQOデータには「オブジェクト」という概念があり、 1つの形状データが複数のオブジェクトによって構成されていることがあります。 本メソッドでは、ファイル名とともにオブジェクト名を指定する必要があります。

なお、本メソッドは ReadMQOFile(String^, String^, bool, bool, bool) において、 第3引数に true を、第4引数に true を、第5引数に false を入力した場合と同義となります。

引数

  [in] | fileName | ファイル名
  [in] | objName | オブジェクト名

戻り値
  成功すれば true を、失敗すれば false を返します。

参照
  ReadMQOData(), fk_IFSTexture::ReadMQOFile()

## ◆ ReadMQOFile() [5/8]

bool FK_CLI::fk_IndexFaceSet::ReadMQOFile | ( | String^ | fileName,
|  | String^ | objName,
|  | int | materialID,
|  | bool | solidFlg,
|  | bool | contFlg,
|  | bool | materialFlg )

MQOファイル入力メソッド2-1

MQO 形式のファイルからデータを入力します。

本メソッドは、テクスチャ用のデータの入力は行いません。 テクスチャデータも併せて表示を行いたい場合は、 fk_IFSTexture クラスを利用して下さい。

MQOデータには「オブジェクト」という概念があり、 1つの形状データが複数のオブジェクトによって構成されていることがあります。 本メソッドでは、ファイル名とともにオブジェクト名を指定する必要があります。

引数

  [in] | fileName | ファイル名
  [in] | objName | オブジェクト名
  [in] | materialID | MQOデータではマテリアルを複数設定することができ、 各ポリゴンに対してどのマテリアルを割り振るかのIDが設定されています。 この引数にマテリアルIDを指定すると、そのIDを持つポリゴンのみを読み込みます。 materialID に -1 を入力した場合は、すべてのポリゴンを読み込みます。
  [in] | solidFlg | true の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。
  [in] | contFlg | テクスチャ断絶の設定を指定します。これは、テクスチャ座標が不連続な箇所に対し、 形状の位相を断絶する操作を行うためのものです。 これを true にした場合は断裂操作が行われ、 テクスチャ座標が不連続な箇所が幾何的にも不連続となるように表示されます。 ほとんどの場合は、断裂操作を行った方が良好な描画結果となります。 ただし、断裂操作を行う際に新たな位相要素を生成するため、 本来のデータよりも頂点、稜線、面が若干増加する場合があります。 false にした場合は、断裂操作を行わずに通常のデータ通り読み込みます。
  [in] | materialFlg | true の場合、MQOファイル中で設定されているマテリアル情報を入力します。 false の場合は、マテリアル情報を無視します。

戻り値
  成功すれば true を、失敗すれば false を返します。

参照
  ReadMQOData(), fk_IFSTexture::ReadMQOFile()

## ◆ ReadMQOFile() [6/8]

bool FK_CLI::fk_IndexFaceSet::ReadMQOFile | ( | String^ | fileName,
|  | String^ | objName,
|  | int | materialID,
|  | bool | solidFlg,
|  | bool | contFlg )

MQOファイル入力メソッド2-2

MQO 形式のファイルからデータを入力します。

本メソッドは、テクスチャ用のデータの入力は行いません。 テクスチャデータも併せて表示を行いたい場合は、 fk_IFSTexture クラスを利用して下さい。

MQOデータには「オブジェクト」という概念があり、 1つの形状データが複数のオブジェクトによって構成されていることがあります。 本メソッドでは、ファイル名とともにオブジェクト名を指定する必要があります。

なお、本メソッドは ReadMQOFile(String^, String^, int, bool, bool, bool) において、 第6引数に false を入力している場合と同義となります。

引数

  [in] | fileName | ファイル名
  [in] | objName | オブジェクト名
  [in] | materialID | MQOデータではマテリアルを複数設定することができ、 各ポリゴンに対してどのマテリアルを割り振るかのIDが設定されています。 この引数にマテリアルIDを指定すると、そのIDを持つポリゴンのみを読み込みます。 materialID に -1 を入力した場合は、すべてのポリゴンを読み込みます。
  [in] | solidFlg | true の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。
  [in] | contFlg | テクスチャ断絶の設定を指定します。これは、テクスチャ座標が不連続な箇所に対し、 形状の位相を断絶する操作を行うためのものです。 これを true にした場合は断裂操作が行われ、 テクスチャ座標が不連続な箇所が幾何的にも不連続となるように表示されます。 ほとんどの場合は、断裂操作を行った方が良好な描画結果となります。 ただし、断裂操作を行う際に新たな位相要素を生成するため、 本来のデータよりも頂点、稜線、面が若干増加する場合があります。 false にした場合は、断裂操作を行わずに通常のデータ通り読み込みます。

戻り値
  成功すれば true を、失敗すれば false を返します。

参照
  ReadMQOData(), fk_IFSTexture::ReadMQOFile()

## ◆ ReadMQOFile() [7/8]

bool FK_CLI::fk_IndexFaceSet::ReadMQOFile | ( | String^ | fileName,
|  | String^ | objName,
|  | int | materialID,
|  | bool | solidFlg )

MQOファイル入力メソッド2-3

MQO 形式のファイルからデータを入力します。

本メソッドは、テクスチャ用のデータの入力は行いません。 テクスチャデータも併せて表示を行いたい場合は、 fk_IFSTexture クラスを利用して下さい。

MQOデータには「オブジェクト」という概念があり、 1つの形状データが複数のオブジェクトによって構成されていることがあります。 本メソッドでは、ファイル名とともにオブジェクト名を指定する必要があります。

なお、本メソッドは ReadMQOFile(String^, String^, int, bool, bool, bool) において、 第5引数に true を、第6引数に false を入力している場合と同義となります。

引数

  [in] | fileName | ファイル名
  [in] | objName | オブジェクト名
  [in] | materialID | MQOデータではマテリアルを複数設定することができ、 各ポリゴンに対してどのマテリアルを割り振るかのIDが設定されています。 この引数にマテリアルIDを指定すると、そのIDを持つポリゴンのみを読み込みます。 materialID に -1 を入力した場合は、すべてのポリゴンを読み込みます。
  [in] | solidFlg | true の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。

戻り値
  成功すれば true を、失敗すれば false を返します。

参照
  ReadMQOData(), fk_IFSTexture::ReadMQOFile()

## ◆ ReadMQOFile() [8/8]

bool FK_CLI::fk_IndexFaceSet::ReadMQOFile | ( | String^ | fileName,
|  | String^ | objName,
|  | int | materialID )

MQOファイル入力メソッド2-4

MQO 形式のファイルからデータを入力します。

本メソッドは、テクスチャ用のデータの入力は行いません。 テクスチャデータも併せて表示を行いたい場合は、 fk_IFSTexture クラスを利用して下さい。

MQOデータには「オブジェクト」という概念があり、 1つの形状データが複数のオブジェクトによって構成されていることがあります。 本メソッドでは、ファイル名とともにオブジェクト名を指定する必要があります。

なお、本メソッドは ReadMQOFile(String^, String^, int, bool, bool, bool) において、 第4引数に true を、第5引数に true を、第6引数に false を入力している場合と同義となります。

引数

  [in] | fileName | ファイル名
  [in] | objName | オブジェクト名
  [in] | materialID | MQOデータではマテリアルを複数設定することができ、 各ポリゴンに対してどのマテリアルを割り振るかのIDが設定されています。 この引数にマテリアルIDを指定すると、そのIDを持つポリゴンのみを読み込みます。 materialID に -1 を入力した場合は、すべてのポリゴンを読み込みます。

戻り値
  成功すれば true を、失敗すれば false を返します。

参照
  ReadMQOData(), fk_IFSTexture::ReadMQOFile()

## ◆ ReadMQOData() [1/8]

bool FK_CLI::fk_IndexFaceSet::ReadMQOData | ( | IEnumerable< Byte >^ | buffer,
|  | String^ | objName,
|  | bool | solidFlg,
|  | bool | contFlg,
|  | bool | materialFlg )

MQOデータ入力メソッド1-1

MQO形式のデータを入力します。 本メソッドでは、MQO形式のデータが既に Byte 型の配列中に入力されていると仮定し、 ReadMQOFile() メソッドと同様の処理を行います。

本メソッドは、テクスチャ用のデータの入力は行いません。 テクスチャデータも併せて表示を行いたい場合は、 fk_IFSTexture クラスを利用して下さい。

MQOデータには「オブジェクト」という概念があり、 1つの形状データが複数のオブジェクトによって構成されていることがあります。 本メソッドでは、ファイル名とともにオブジェクト名を指定する必要があります。

引数

  [in] | buffer | データが格納されているバッファ
  [in] | objName | オブジェクト名
  [in] | solidFlg | true の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。
  [in] | contFlg | テクスチャ断絶の設定を指定します。これは、テクスチャ座標が不連続な箇所に対し、 形状の位相を断絶する操作を行うためのものです。 これを true にした場合は断裂操作が行われ、 テクスチャ座標が不連続な箇所が幾何的にも不連続となるように表示されます。 ほとんどの場合は、断裂操作を行った方が良好な描画結果となります。 ただし、断裂操作を行う際に新たな位相要素を生成するため、 本来のデータよりも頂点、稜線、面が若干増加する場合があります。 false にした場合は、断裂操作を行わずに通常のデータ通り読み込みます。
  [in] | materialFlg | true の場合、MQOデータ中で設定されているマテリアル情報を入力します。 false の場合は、マテリアル情報を無視します。

戻り値
  成功すれば true を、失敗すれば false を返します。

参照
  ReadMQOFile()

## ◆ ReadMQOData() [2/8]

bool FK_CLI::fk_IndexFaceSet::ReadMQOData | ( | IEnumerable< Byte >^ | buffer,
|  | String^ | objName,
|  | bool | solidFlg,
|  | bool | contFlg )

MQOデータ入力メソッド1-2

MQO形式のデータを入力します。 本メソッドでは、MQO形式のデータが既に Byte 型の配列中に入力されていると仮定し、 ReadMQOFile() メソッドと同様の処理を行います。

本メソッドは、テクスチャ用のデータの入力は行いません。 テクスチャデータも併せて表示を行いたい場合は、 fk_IFSTexture クラスを利用して下さい。

MQOデータには「オブジェクト」という概念があり、 1つの形状データが複数のオブジェクトによって構成されていることがあります。 本メソッドでは、ファイル名とともにオブジェクト名を指定する必要があります。

なお、本メソッドは ReadMQOData(IEnumerable<Byte>^, String^, bool, bool, bool) において、 第5引数に false を入力している場合と同義となります。

引数

  [in] | buffer | データが格納されているバッファ
  [in] | objName | オブジェクト名
  [in] | solidFlg | true の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。
  [in] | contFlg | テクスチャ断絶の設定を指定します。これは、テクスチャ座標が不連続な箇所に対し、 形状の位相を断絶する操作を行うためのものです。 これを true にした場合は断裂操作が行われ、 テクスチャ座標が不連続な箇所が幾何的にも不連続となるように表示されます。 ほとんどの場合は、断裂操作を行った方が良好な描画結果となります。 ただし、断裂操作を行う際に新たな位相要素を生成するため、 本来のデータよりも頂点、稜線、面が若干増加する場合があります。 false にした場合は、断裂操作を行わずに通常のデータ通り読み込みます。

戻り値
  成功すれば true を、失敗すれば false を返します。

参照
  ReadMQOFile()

## ◆ ReadMQOData() [3/8]

bool FK_CLI::fk_IndexFaceSet::ReadMQOData | ( | IEnumerable< Byte >^ | buffer,
|  | String^ | objName,
|  | bool | solidFlg )

MQOデータ入力メソッド1-3

MQO形式のデータを入力します。 本メソッドでは、MQO形式のデータが既に Byte 型の配列中に入力されていると仮定し、 ReadMQOFile() メソッドと同様の処理を行います。

本メソッドは、テクスチャ用のデータの入力は行いません。 テクスチャデータも併せて表示を行いたい場合は、 fk_IFSTexture クラスを利用して下さい。

MQOデータには「オブジェクト」という概念があり、 1つの形状データが複数のオブジェクトによって構成されていることがあります。 本メソッドでは、ファイル名とともにオブジェクト名を指定する必要があります。

なお、本メソッドは ReadMQOData(IEnumerable<Byte>^, String^, bool, bool, bool) において、 第4引数に true を、第5引数に false を入力している場合と同義となります。

引数

  [in] | buffer | データが格納されているバッファ
  [in] | objName | オブジェクト名
  [in] | solidFlg | true の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。

戻り値
  成功すれば true を、失敗すれば false を返します。

参照
  ReadMQOFile()

## ◆ ReadMQOData() [4/8]

bool FK_CLI::fk_IndexFaceSet::ReadMQOData | ( | IEnumerable< Byte >^ | buffer,
|  | String^ | objName )

MQOデータ入力メソッド1-4

MQO形式のデータを入力します。 本メソッドでは、MQO形式のデータが既に Byte 型の配列中に入力されていると仮定し、 ReadMQOFile() メソッドと同様の処理を行います。

本メソッドは、テクスチャ用のデータの入力は行いません。 テクスチャデータも併せて表示を行いたい場合は、 fk_IFSTexture クラスを利用して下さい。

MQOデータには「オブジェクト」という概念があり、 1つの形状データが複数のオブジェクトによって構成されていることがあります。 本メソッドでは、ファイル名とともにオブジェクト名を指定する必要があります。

なお、本メソッドは ReadMQOData(IEnumerable<Byte>^, String^, bool, bool, bool) において、 第3引数に true を、第4引数に true を、第5引数に false を入力している場合と同義となります。

引数

  [in] | buffer | データが格納されているバッファ
  [in] | objName | オブジェクト名

戻り値
  成功すれば true を、失敗すれば false を返します。

参照
  ReadMQOFile()

## ◆ ReadMQOData() [5/8]

bool FK_CLI::fk_IndexFaceSet::ReadMQOData | ( | IEnumerable< Byte >^ | buffer,
|  | String^ | objName,
|  | int | materialID,
|  | bool | solidFlg,
|  | bool | contFlg,
|  | bool | materialFlg )

MQOデータ入力メソッド2-1

MQO形式のデータを入力します。 本メソッドでは、MQO形式のデータが既に Byte 型の配列中に入力されていると仮定し、 ReadMQOFile() メソッドと同様の処理を行います。

本メソッドは、テクスチャ用のデータの入力は行いません。 テクスチャデータも併せて表示を行いたい場合は、 fk_IFSTexture クラスを利用して下さい。

MQOデータには「オブジェクト」という概念があり、 1つの形状データが複数のオブジェクトによって構成されていることがあります。 本メソッドでは、ファイル名とともにオブジェクト名を指定する必要があります。

引数

  [in] | buffer | データが格納されているバッファ
  [in] | objName | オブジェクト名
  [in] | materialID | MQOデータではマテリアルを複数設定することができ、 各ポリゴンに対してどのマテリアルを割り振るかのIDが設定されています。 この引数にマテリアルIDを指定すると、そのIDを持つポリゴンのみを読み込みます。 materialID に -1 を入力した場合は、すべてのポリゴンを読み込みます。
  [in] | solidFlg | true の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。
  [in] | contFlg | テクスチャ断絶の設定を指定します。これは、テクスチャ座標が不連続な箇所に対し、 形状の位相を断絶する操作を行うためのものです。 これを true にした場合は断裂操作が行われ、 テクスチャ座標が不連続な箇所が幾何的にも不連続となるように表示されます。 ほとんどの場合は、断裂操作を行った方が良好な描画結果となります。 ただし、断裂操作を行う際に新たな位相要素を生成するため、 本来のデータよりも頂点、稜線、面が若干増加する場合があります。 false にした場合は、断裂操作を行わずに通常のデータ通り読み込みます。
  [in] | materialFlg | true の場合、MQOデータ中で設定されているマテリアル情報を入力します。 false の場合は、マテリアル情報を無視します。

戻り値
  成功すれば true を、失敗すれば false を返します。

参照
  ReadMQOFile()

## ◆ ReadMQOData() [6/8]

bool FK_CLI::fk_IndexFaceSet::ReadMQOData | ( | IEnumerable< Byte >^ | buffer,
|  | String^ | objName,
|  | int | materialID,
|  | bool | solidFlg,
|  | bool | contFlg )

MQOデータ入力メソッド2-2

MQO形式のデータを入力します。 本メソッドでは、MQO形式のデータが既に Byte 型の配列中に入力されていると仮定し、 ReadMQOFile() メソッドと同様の処理を行います。

本メソッドは、テクスチャ用のデータの入力は行いません。 テクスチャデータも併せて表示を行いたい場合は、 fk_IFSTexture クラスを利用して下さい。

MQOデータには「オブジェクト」という概念があり、 1つの形状データが複数のオブジェクトによって構成されていることがあります。 本メソッドでは、ファイル名とともにオブジェクト名を指定する必要があります。

なお、本メソッドは ReadMQOData(IEnumerable<Byte>^, String^, int, bool, bool, bool) において、 第6引数に false を入力している場合と同義となります。

引数

  [in] | buffer | データが格納されているバッファ
  [in] | objName | オブジェクト名
  [in] | materialID | MQOデータではマテリアルを複数設定することができ、 各ポリゴンに対してどのマテリアルを割り振るかのIDが設定されています。 この引数にマテリアルIDを指定すると、そのIDを持つポリゴンのみを読み込みます。 materialID に -1 を入力した場合は、すべてのポリゴンを読み込みます。
  [in] | solidFlg | true の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。
  [in] | contFlg | テクスチャ断絶の設定を指定します。これは、テクスチャ座標が不連続な箇所に対し、 形状の位相を断絶する操作を行うためのものです。 これを true にした場合は断裂操作が行われ、 テクスチャ座標が不連続な箇所が幾何的にも不連続となるように表示されます。 ほとんどの場合は、断裂操作を行った方が良好な描画結果となります。 ただし、断裂操作を行う際に新たな位相要素を生成するため、 本来のデータよりも頂点、稜線、面が若干増加する場合があります。 false にした場合は、断裂操作を行わずに通常のデータ通り読み込みます。

戻り値
  成功すれば true を、失敗すれば false を返します。

参照
  ReadMQOFile()

## ◆ ReadMQOData() [7/8]

bool FK_CLI::fk_IndexFaceSet::ReadMQOData | ( | IEnumerable< Byte >^ | buffer,
|  | String^ | objName,
|  | int | materialID,
|  | bool | solidFlg )

MQOデータ入力メソッド2-3

MQO形式のデータを入力します。 本メソッドでは、MQO形式のデータが既に Byte 型の配列中に入力されていると仮定し、 ReadMQOFile() メソッドと同様の処理を行います。

本メソッドは、テクスチャ用のデータの入力は行いません。 テクスチャデータも併せて表示を行いたい場合は、 fk_IFSTexture クラスを利用して下さい。

MQOデータには「オブジェクト」という概念があり、 1つの形状データが複数のオブジェクトによって構成されていることがあります。 本メソッドでは、ファイル名とともにオブジェクト名を指定する必要があります。

なお、本メソッドは ReadMQOData(IEnumerable<Byte>^, String^, int, bool, bool, bool) において、 第5引数に true を、第6引数に false を入力している場合と同義となります。

引数

  [in] | buffer | データが格納されているバッファ
  [in] | objName | オブジェクト名
  [in] | materialID | MQOデータではマテリアルを複数設定することができ、 各ポリゴンに対してどのマテリアルを割り振るかのIDが設定されています。 この引数にマテリアルIDを指定すると、そのIDを持つポリゴンのみを読み込みます。 materialID に -1 を入力した場合は、すべてのポリゴンを読み込みます。
  [in] | solidFlg | true の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。

戻り値
  成功すれば true を、失敗すれば false を返します。

参照
  ReadMQOFile()

## ◆ ReadMQOData() [8/8]

bool FK_CLI::fk_IndexFaceSet::ReadMQOData | ( | IEnumerable< Byte >^ | buffer,
|  | String^ | objName,
|  | int | materialID )

MQOデータ入力メソッド2-4

MQO形式のデータを入力します。 本メソッドでは、MQO形式のデータが既に Byte 型の配列中に入力されていると仮定し、 ReadMQOFile() メソッドと同様の処理を行います。

本メソッドは、テクスチャ用のデータの入力は行いません。 テクスチャデータも併せて表示を行いたい場合は、 fk_IFSTexture クラスを利用して下さい。

MQOデータには「オブジェクト」という概念があり、 1つの形状データが複数のオブジェクトによって構成されていることがあります。 本メソッドでは、ファイル名とともにオブジェクト名を指定する必要があります。

なお、本メソッドは ReadMQOData(IEnumerable<Byte>^, String^, int, bool, bool, bool) において、 第4引数に true を、第5引数に true を、第6引数に false を入力している場合と同義となります。

引数

  [in] | buffer | データが格納されているバッファ
  [in] | objName | オブジェクト名
  [in] | materialID | MQOデータではマテリアルを複数設定することができ、 各ポリゴンに対してどのマテリアルを割り振るかのIDが設定されています。 この引数にマテリアルIDを指定すると、そのIDを持つポリゴンのみを読み込みます。 materialID に -1 を入力した場合は、すべてのポリゴンを読み込みます。

戻り値
  成功すれば true を、失敗すれば false を返します。

参照
  ReadMQOFile()

## ◆ ReadD3DXFile() [1/4]

bool FK_CLI::fk_IndexFaceSet::ReadD3DXFile | ( | String^ | fileName,
|  | String^ | objName,
|  | bool | solidFlg )

DirectX (D3DX) ファイル入力メソッド1-1

DirectX 形式 (X 形式と呼ばれることもあります) のフォーマット (以下、「D3DX形式」) であるファイルからデータを入力します。 本メソッドで入力できるのは形状データとアニメーションデータです。 テクスチャデータを入力したい場合は、 fk_IndexFaceSet クラスではなく fk_IFSTexture クラスを利用して下さい。

D3DXデータには「オブジェクト」という概念があり、 1つの形状データが複数のオブジェクトによって構成されていることがあります。 本メソッドでは、ファイル名とともにオブジェクト名を指定する必要があります。

引数

  [in] | fileName | ファイル名
  [in] | objName | オブジェクト名。 D3DX 形式では、オブジェクト名を省略することが許容されています。 そのような場合は、この引数に空文字列 ( "" ) を入れてください。 この場合、ファイル中で最初に存在するオブジェクトのデータを入力します。
  [in] | solidFlg | true の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。

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

参照
  fk_IFSTexture::ReadD3DXFile()

## ◆ ReadD3DXFile() [2/4]

bool FK_CLI::fk_IndexFaceSet::ReadD3DXFile | ( | String^ | fileName,
|  | String^ | objName )

DirectX (D3DX) ファイル入力メソッド1-2

DirectX 形式 (X 形式と呼ばれることもあります) のフォーマット (以下、「D3DX形式」) であるファイルからデータを入力します。 本メソッドで入力できるのは形状データとアニメーションデータです。 テクスチャデータを入力したい場合は、 fk_IndexFaceSet クラスではなく fk_IFSTexture クラスを利用して下さい。

D3DXデータには「オブジェクト」という概念があり、 1つの形状データが複数のオブジェクトによって構成されていることがあります。 本メソッドでは、ファイル名とともにオブジェクト名を指定する必要があります。

なお、本メソッドは ReadD3DXFile(String^, String^, bool) において、 第3引数に true を入力している場合と同義となります。

引数

  [in] | fileName | ファイル名
  [in] | objName | オブジェクト名。 D3DX 形式では、オブジェクト名を省略することが許容されています。 そのような場合は、この引数に空文字列 ( "" ) を入れてください。 この場合、ファイル中で最初に存在するオブジェクトのデータを入力します。

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

参照
  fk_IFSTexture::ReadD3DXFile()

## ◆ ReadD3DXFile() [3/4]

bool FK_CLI::fk_IndexFaceSet::ReadD3DXFile | ( | String^ | fileName,
|  | String^ | objName,
|  | int | materialID,
|  | bool | solidFlg )

DirectX (D3DX) ファイル入力メソッド2-1

DirectX 形式 (X 形式と呼ばれることもあります) のフォーマット (以下、「D3DX形式」) であるファイルからデータを入力します。 本メソッドで入力できるのは形状データとアニメーションデータです。 テクスチャデータを入力したい場合は、 fk_IndexFaceSet クラスではなく fk_IFSTexture クラスを利用して下さい。

D3DXデータには「オブジェクト」という概念があり、 1つの形状データが複数のオブジェクトによって構成されていることがあります。 本メソッドでは、ファイル名とともにオブジェクト名を指定する必要があります。

引数

  [in] | fileName | ファイル名
  [in] | objName | オブジェクト名。 D3DX 形式では、オブジェクト名を省略することが許容されています。 そのような場合は、この引数に空文字列 ( "" ) を入れてください。 この場合、ファイル中で最初に存在するオブジェクトのデータを入力します。
  [in] | materialID | D3DXデータではマテリアルを複数設定することができ、 各ポリゴンに対してどのマテリアルを割り振るかのIDが設定されています。 この引数にマテリアルIDを指定すると、そのIDを持つポリゴンのみを読み込みます。 materialID に -1 を入力した場合は、すべてのポリゴンを読み込みます。
  [in] | solidFlg | true の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。

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

参照
  fk_IFSTexture::ReadD3DXFile()

## ◆ ReadD3DXFile() [4/4]

bool FK_CLI::fk_IndexFaceSet::ReadD3DXFile | ( | String^ | fileName,
|  | String^ | objName,
|  | int | materialID )

DirectX (D3DX) ファイル入力メソッド2-2

DirectX 形式 (X 形式と呼ばれることもあります) のフォーマット (以下、「D3DX形式」) であるファイルからデータを入力します。 本メソッドで入力できるのは形状データとアニメーションデータです。 テクスチャデータを入力したい場合は、 fk_IndexFaceSet クラスではなく fk_IFSTexture クラスを利用して下さい。

D3DXデータには「オブジェクト」という概念があり、 1つの形状データが複数のオブジェクトによって構成されていることがあります。 本メソッドでは、ファイル名とともにオブジェクト名を指定する必要があります。

なお、本メソッドは ReadD3DXFile(String^, String^, int, bool) において、 第4引数に true を入力している場合と同義となります。

引数

  [in] | fileName | ファイル名
  [in] | objName | オブジェクト名。 D3DX 形式では、オブジェクト名を省略することが許容されています。 そのような場合は、この引数に空文字列 ( "" ) を入れてください。 この場合、ファイル中で最初に存在するオブジェクトのデータを入力します。
  [in] | materialID | D3DXデータではマテリアルを複数設定することができ、 各ポリゴンに対してどのマテリアルを割り振るかのIDが設定されています。 この引数にマテリアルIDを指定すると、そのIDを持つポリゴンのみを読み込みます。 materialID に -1 を入力した場合は、すべてのポリゴンを読み込みます。

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

参照
  fk_IFSTexture::ReadD3DXFile()

## ◆ WriteVRMLFile() [1/6]

bool FK_CLI::fk_IndexFaceSet::WriteVRMLFile | ( | String^ | fileName,
|  | fk_Material^ | material,
|  | bool | triFlg )

VRML ファイル出力メソッド1-1

VRML (VRML2.0) 形式で形状データを出力します。

引数

  [in] | fileName | ファイル名
  [in] | material | VRMLファイル中に「Material」ノードとしてマテリアル情報を保存します。 null を代入した場合は、VRMLファイル中に「Material」ノードを生成しません。
  [in] | triFlg | 仮想メソッドからの継承のために存在する引数で、処理には一切影響しません。

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

## ◆ WriteVRMLFile() [2/6]

bool FK_CLI::fk_IndexFaceSet::WriteVRMLFile | ( | String^ | fileName,
|  | fk_Material^ | material )

VRML ファイル出力メソッド1-2

VRML (VRML2.0) 形式で形状データを出力します。

なお、本メソッドは WriteVRMLFile(String^, fk_Material^, bool) において、 第3引数に false を入力している場合と同義となります。

引数

  [in] | fileName | ファイル名
  [in] | material | VRMLファイル中に「Material」ノードとしてマテリアル情報を保存します。 null を代入した場合は、VRMLファイル中に「Material」ノードを生成しません。

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

## ◆ WriteVRMLFile() [3/6]

bool FK_CLI::fk_IndexFaceSet::WriteVRMLFile | ( | String^ | fileName | ) |

VRML ファイル出力メソッド1-3

VRML (VRML2.0) 形式で形状データを出力します。

なお、本メソッドは WriteVRMLFile(String^, fk_Material^, bool) において、 第2引数に null を、第3引数に false を入力している場合と同義となります。

引数

  [in] | fileName | ファイル名

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

## ◆ WriteVRMLFile() [4/6]

bool FK_CLI::fk_IndexFaceSet::WriteVRMLFile | ( | String^ | fileName,
|  | IEnumerable< double >^ | time,
|  | IEnumerable< fk_Vector^>^ | pos,
|  | fk_Material^ | material,
|  | bool | triFlg )

VRML ファイル出力メソッド2-1

VRML (VRML2.0) 形式で形状データを出力します。 この引数形式の場合は、 CoordinateInterpolator ノードを用いた アニメーションデータを出力することが可能です。

引数

  [in] | fileName | ファイル名
  [in] | time | CoordinateInterpolator における時間配列 (key) を入力します。
  [in] | pos | CoordinateInterpolator における位置ベクトル配列 (keyValue) を入力します。
  [in] | material | VRMLファイル中に「Material」ノードとしてマテリアル情報を保存します。 nullptr を代入した場合は、VRMLファイル中に「Material」ノードを生成しません。
  [in] | triFlg | 仮想メソッドからの継承のために存在する引数で、処理には一切影響しません。

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

## ◆ WriteVRMLFile() [5/6]

bool FK_CLI::fk_IndexFaceSet::WriteVRMLFile | ( | String^ | fileName,
|  | IEnumerable< double >^ | time,
|  | IEnumerable< fk_Vector^>^ | pos,
|  | fk_Material^ | material )

VRML ファイル出力メソッド2-2

VRML (VRML2.0) 形式で形状データを出力します。 この引数形式の場合は、 CoordinateInterpolator ノードを用いた アニメーションデータを出力することが可能です。

なお、本メソッドは WriteVRMLFile(String^, IEnumerable<double>^, IEnumerable<fk_Vector^>^, fk_Material^, bool) において、 第5引数に false を入力している場合と同義となります。

引数

  [in] | fileName | ファイル名
  [in] | time | CoordinateInterpolator における時間配列 (key) を入力します。
  [in] | pos | CoordinateInterpolator における位置ベクトル配列 (keyValue) を入力します。
  [in] | material | VRMLファイル中に「Material」ノードとしてマテリアル情報を保存します。 nullptr を代入した場合は、VRMLファイル中に「Material」ノードを生成しません。

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

## ◆ WriteVRMLFile() [6/6]

bool FK_CLI::fk_IndexFaceSet::WriteVRMLFile | ( | String^ | fileName,
|  | IEnumerable< double >^ | time,
|  | IEnumerable< fk_Vector^>^ | pos )

VRML ファイル出力メソッド2-3

VRML (VRML2.0) 形式で形状データを出力します。 この引数形式の場合は、 CoordinateInterpolator ノードを用いた アニメーションデータを出力することが可能です。

なお、本メソッドは WriteVRMLFile(String^, IEnumerable<double>^, IEnumerable<fk_Vector^>^, fk_Material^, bool) において、 第4引数に null を、第5引数に false を入力している場合と同義となります。

引数

  [in] | fileName | ファイル名
  [in] | time | CoordinateInterpolator における時間配列 (key) を入力します。
  [in] | pos | CoordinateInterpolator における位置ベクトル配列 (keyValue) を入力します。

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

## ◆ WriteSTLFile()

bool FK_CLI::fk_IndexFaceSet::WriteSTLFile | ( | String^ | fileName | ) |

STL ファイル出力メソッド

STL 形式で形状データを出力します。

引数

  [in] | fileName | ファイル名

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

## ◆ WriteDXFFile() [1/2]

bool FK_CLI::fk_IndexFaceSet::WriteDXFFile | ( | String^ | fileName,
|  | bool | triFlg )

DXF ファイル出力メソッド1

DXF 形式で形状データを出力します。

引数

  [in] | fileName | ファイル名
  [in] | triFlg | 面情報を3角形として出力したい場合は、true を代入します。 false の場合、3角形面を2点が重複している4角形面として出力します。

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

## ◆ WriteDXFFile() [2/2]

bool FK_CLI::fk_IndexFaceSet::WriteDXFFile | ( | String^ | fileName | ) |

DXF ファイル出力メソッド1

DXF 形式で形状データを出力します。

なお、本メソッドは WriteDXFFile(String^, bool) において、 第2引数に false を入力した場合と同義となります。

引数

  [in] | fileName | ファイル名

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

## ◆ WriteMQOFile()

bool FK_CLI::fk_IndexFaceSet::WriteMQOFile | ( | String^ | fileName | ) |

MQO ファイル出力メソッド

MQO 形式で形状データを出力します。

引数

  [in] | fileName | ファイル名

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

## ◆ GetPosVec()

fk_Vector ^ FK_CLI::fk_IndexFaceSet::GetPosVec | ( | int | vertexID | ) |

頂点位置ベクトル参照メソッド

形状データ中の、頂点の位置ベクトルを取得します。

引数

  [in] | vertexID | 頂点ID。一番最初の頂点IDは 0 になります。 最後の ID は頂点数から 1 を引いたものとなります。

戻り値
  頂点の位置ベクトル

参照
  MoveVPosition()

## ◆ GetFaceData() [1/2]

cli::array< int > ^ FK_CLI::fk_IndexFaceSet::GetFaceData | ( | int | faceID | ) |

頂点 ID 配列参照メソッド

面を構成する頂点 ID の配列を取得します。

引数

  [in] | faceID | 面 ID。一番最初の面IDは 0 になります。 最後の ID は面数から 1 を引いたものとなります。

戻り値
  頂点 ID 配列

## ◆ GetFaceData() [2/2]

int FK_CLI::fk_IndexFaceSet::GetFaceData | ( | int | faceID,
|  | int | vertexNum )

頂点 ID 参照メソッド

面を構成する頂点 ID を取得します。

引数

  [in] | faceID | 面 ID。一番最初の面IDは 0 になります。 最後の ID は面数から 1 を引いたものとなります。
  [in] | vertexNum | 面の中での頂点番号。 3角形であれば 0 から 2、 4角形であれば 0 から 3 のいずれかを入力すると、 格納されている頂点 ID を取得できます。

戻り値
  頂点 ID

## ◆ GetPNorm() [1/2]

fk_Vector ^ FK_CLI::fk_IndexFaceSet::GetPNorm | ( | int | faceID,
|  | int | order )

面法線ベクトル取得メソッド1

面の法線ベクトルを取得します。

引数

  [in] | faceID | 面ID
  [in] | order | 最初の面IDを補正するオーダー。通常は 0 を入力して下さい。

戻り値
  面の法線ベクトル

参照
  SetPNorm(), GetVNorm()

## ◆ GetPNorm() [2/2]

fk_Vector ^ FK_CLI::fk_IndexFaceSet::GetPNorm | ( | int | faceID | ) |

面法線ベクトル取得メソッド2

面の法線ベクトルを取得します。

なお、本メソッドは GetPNorm(int, int) において、 第2引数に 0 を入力した場合と同義となります。

引数

  [in] | faceID | 面ID

戻り値
  面の法線ベクトル

参照
  SetPNorm(), GetVNorm()

## ◆ GetVNorm() [1/2]

fk_Vector ^ FK_CLI::fk_IndexFaceSet::GetVNorm | ( | int | vertexID,
|  | int | order )

頂点法線ベクトル取得メソッド1

頂点の法線ベクトルを取得します。

引数

  [in] | vertexID | 頂点ID
  [in] | order | 最初の頂点IDを補正するオーダー。通常は 0 を入力して下さい。

戻り値
  頂点の法線ベクトル

参照
  SetVNorm(), GetPNorm()

## ◆ GetVNorm() [2/2]

fk_Vector ^ FK_CLI::fk_IndexFaceSet::GetVNorm | ( | int | vertexID | ) |

頂点法線ベクトル取得メソッド2

頂点の法線ベクトルを取得します。

なお、本メソッドは GetVNorm(int, int) において、 第2引数に 0 を入力した場合と同義となります。

引数

  [in] | vertexID | 頂点ID

戻り値
  頂点の法線ベクトル

参照
  SetVNorm(), GetPNorm()

## ◆ GetElemMaterialID()

int FK_CLI::fk_IndexFaceSet::GetElemMaterialID | ( | int | faceID | ) |

マテリアルID取得メソッド

面に対して個別に設定してあるマテリアル ID を取得します。 マテリアルの個別設定については fk_Shape::SetMaterialMode() および fk_Shape::SetPalette() を参照して下さい。

引数

  [in] | faceID | 面ID

戻り値
  マテリアルID

参照
  SetElemMaterialID(), fk_Shape

## ◆ MoveVPosition() [1/6]

bool FK_CLI::fk_IndexFaceSet::MoveVPosition | ( | int | vertexID,
|  | fk_Vector^ | pos,
|  | int | order )

頂点移動メソッド1-1

指定された頂点を移動します。 なお、 SetVNorm() によって法線ベクトルが設定されていた場合や、 SetPNorm() によって周辺の面に放線ベクトルが設定されていた場合、 本メソッドによって破棄されます。

引数

  [in] | vertexID | 頂点ID
  [in] | pos | 移動先の位置ベクトル
  [in] | order | 最初の頂点IDを補正するオーダー。通常は 0 を入力して下さい。

戻り値
  成功すれば true を、失敗すれば false を返します。

参照
  GetPosVec()

## ◆ MoveVPosition() [2/6]

bool FK_CLI::fk_IndexFaceSet::MoveVPosition | ( | int | vertexID,
|  | fk_Vector^ | pos )

頂点移動メソッド1-2

指定された頂点を移動します。 なお、 SetVNorm() によって法線ベクトルが設定されていた場合や、 SetPNorm() によって周辺の面に放線ベクトルが設定されていた場合、 本メソッドによって破棄されます。

なお、本メソッドは MoveVPosition(int, fk_Vector^, int) において、 第3引数に 0 を入力した場合と同義になります。

引数

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

戻り値
  成功すれば true を、失敗すれば false を返します。

参照
  GetPosVec()

## ◆ MoveVPosition() [3/6]

bool FK_CLI::fk_IndexFaceSet::MoveVPosition | ( | int | vertexID,
|  | double | x,
|  | double | y,
|  | double | z,
|  | int | order )

頂点移動メソッド2-1

指定された頂点を移動します。 なお、 SetVNorm() によって法線ベクトルが設定されていた場合や、 SetPNorm() によって周辺の面に放線ベクトルが設定されていた場合、 本メソッドによって破棄されます。

引数

  [in] | vertexID | 頂点ID
  [in] | x | 移動先位置ベクトルの x 成分
  [in] | y | 移動先位置ベクトルの y 成分
  [in] | z | 移動先位置ベクトルの z 成分
  [in] | order | 最初の頂点IDを補正するオーダー。通常は 0 を入力して下さい。

戻り値
  成功すれば true を、失敗すれば false を返します。

参照
  GetPosVec()

## ◆ MoveVPosition() [4/6]

bool FK_CLI::fk_IndexFaceSet::MoveVPosition | ( | int | vertexID,
|  | double | x,
|  | double | y,
|  | double | z )

頂点移動メソッド2-1

指定された頂点を移動します。 なお、 SetVNorm() によって法線ベクトルが設定されていた場合や、 SetPNorm() によって周辺の面に放線ベクトルが設定されていた場合、 本メソッドによって破棄されます。

なお、本メソッドは MoveVPosition(int, double, double, double, int) において、 第5引数に 0 を入力した場合と同義になります。

引数

  [in] | vertexID | 頂点ID
  [in] | x | 移動先位置ベクトルの x 成分
  [in] | y | 移動先位置ベクトルの y 成分
  [in] | z | 移動先位置ベクトルの z 成分

戻り値
  成功すれば true を、失敗すれば false を返します。

参照
  GetPosVec()

## ◆ MoveVPosition() [5/6]

bool FK_CLI::fk_IndexFaceSet::MoveVPosition | ( | int | vertexID,
|  | IEnumerable< double >^ | array,
|  | int | order )

頂点移動メソッド3-1

指定された頂点を移動します。 なお、 SetVNorm() によって法線ベクトルが設定されていた場合や、 SetPNorm() によって周辺の面に放線ベクトルが設定されていた場合、 本メソッドによって破棄されます。

引数

  [in] | vertexID | 頂点ID
  [in] | array | 移動先位置ベクトルの各成分が入った double 型配列。
  [in] | order | 最初の頂点IDを補正するオーダー。通常は 0 を入力して下さい。

戻り値
  成功すれば true を、失敗すれば false を返します。

参照
  GetPosVec()

## ◆ MoveVPosition() [6/6]

bool FK_CLI::fk_IndexFaceSet::MoveVPosition | ( | int | vertexID,
|  | IEnumerable< double >^ | array )

頂点移動メソッド3-2

指定された頂点を移動します。 なお、 SetVNorm() によって法線ベクトルが設定されていた場合や、 SetPNorm() によって周辺の面に放線ベクトルが設定されていた場合、 本メソッドによって破棄されます。

なお、本メソッドは MoveVPosition(int, IEnumerable<double>^, int) において、 第3引数に 0 を入力した場合と同義になります。

引数

  [in] | vertexID | 頂点ID
  [in] | array | 移動先位置ベクトルの各成分が入った double 型配列。

戻り値
  成功すれば true を、失敗すれば false を返します。

参照
  GetPosVec()

## ◆ MakeIFSet() [1/7]

void FK_CLI::fk_IndexFaceSet::MakeIFSet | ( | int | faceNum,
|  | int | polyNum,
|  | IEnumerable< int >^ | IFSet,
|  | int | vertexNum,
|  | IEnumerable< fk_Vector^>^ | posArray,
|  | int | order )

任意形状生成メソッド1

与えられたインデックスフェースセット情報から、形状を生成します。

引数

  [in] | faceNum | 面数
  [in] | polyNum | 面の角数。現在、ここに入力できる数値は 3 か 4 のみです。
  [in] | IFSet | インデックスフェースセット配列。 この配列は、各面を構成する頂点 ID を並べたものになります。 たとえば、頂点 ID が [0, 1, 2] と [2, 1, 3] という構成を持つ 2面からなる形状を生成する場合、 int 型の配列に対して [0, 1, 2, 2, 1, 3] という数値を入力しておきます。 4角形の場合も同様です。 結果的に、この配列の長さは面数と角数を掛けたもの以上である必要があります。
  [in] | vertexNum | 頂点数
  [in] | posArray | 頂点位置ベクトルの配列。配列の長さは頂点数以上である必要があります。
  [in] | order | 最初の頂点IDを補正するオーダー。通常は 0 を入力して下さい。

参照
  fk_Solid

## ◆ MakeIFSet() [2/7]

void FK_CLI::fk_IndexFaceSet::MakeIFSet | ( | int | faceNum,
|  | int | polyNum,
|  | IEnumerable< int >^ | IFSet,
|  | int | vertexNum,
|  | IEnumerable< fk_Vector^>^ | posArray )

任意形状生成メソッド2

与えられたインデックスフェースセット情報から、形状を生成します。

なお、本メソッドは MakeIFSet(int, int, IEnumerable<int>^, int, IEnumerable<fk_Vector^>^, int) において、 第6引数に 0 を入力した場合と同義となります。

引数

  [in] | faceNum | 面数
  [in] | polyNum | 面の角数。現在、ここに入力できる数値は 3 か 4 のみです。
  [in] | IFSet | インデックスフェースセット配列。 この配列は、各面を構成する頂点 ID を並べたものになります。 たとえば、頂点 ID が [0, 1, 2] と [2, 1, 3] という構成を持つ 2面からなる形状を生成する場合、 int 型の配列に対して [0, 1, 2, 2, 1, 3] という数値を入力しておきます。 4角形の場合も同様です。 結果的に、この配列の長さは面数と角数を掛けたもの以上である必要があります。
  [in] | vertexNum | 頂点数
  [in] | posArray | 頂点位置ベクトルの配列。配列の長さは頂点数以上である必要があります。

参照
  fk_Solid

## ◆ MakeIFSet() [3/7]

void FK_CLI::fk_IndexFaceSet::MakeIFSet | ( | int | faceNum,
|  | int | polyNum,
|  | IEnumerable< int >^ | IFSet,
|  | int | vertexNum,
|  | IEnumerable< fk_Vector^>^ | posArray,
|  | bool | smoothMode )

任意形状生成メソッド3

与えられたインデックスフェースセット情報から、形状を生成します。

引数

  [in] | faceNum | 面数
  [in] | polyNum | 面の角数。現在、ここに入力できる数値は 3 か 4 のみです。
  [in] | IFSet | インデックスフェースセット配列。 この配列は、各面を構成する頂点 ID を並べたものになります。 たとえば、頂点 ID が [0, 1, 2] と [2, 1, 3] という構成を持つ 2面からなる形状を生成する場合、 int 型の配列に対して [0, 1, 2, 2, 1, 3] という数値を入力しておきます。 4角形の場合も同様です。 結果的に、この配列の長さは面数と角数を掛けたもの以上である必要があります。
  [in] | vertexNum | 頂点数
  [in] | posArray | 頂点位置ベクトルの配列。配列の長さは頂点数以上である必要があります。
  [in] | smoothMode | true の場合、スムースシェーディングとなります。 false の場合はフラットシェーディングとなります。

参照
  fk_Solid

## ◆ MakeIFSet() [4/7]

void FK_CLI::fk_IndexFaceSet::MakeIFSet | ( | int | faceNum,
|  | int | polyNum,
|  | IEnumerable< int >^ | IFSet,
|  | int | vertexNum,
|  | IEnumerable< fk_Vector^>^ | posArray,
|  | bool | smoothMode,
|  | int | order )

任意形状生成メソッド4

与えられたインデックスフェースセット情報から、形状を生成します。

引数

  [in] | faceNum | 面数
  [in] | polyNum | 面の角数。現在、ここに入力できる数値は 3 か 4 のみです。
  [in] | IFSet | インデックスフェースセット配列。 この配列は、各面を構成する頂点 ID を並べたものになります。 たとえば、頂点 ID が [0, 1, 2] と [2, 1, 3] という構成を持つ 2面からなる形状を生成する場合、 int 型の配列に対して [0, 1, 2, 2, 1, 3] という数値を入力しておきます。 4角形の場合も同様です。 結果的に、この配列の長さは面数と角数を掛けたもの以上である必要があります。
  [in] | vertexNum | 頂点数
  [in] | posArray | 頂点位置ベクトルの配列。配列の長さは頂点数以上である必要があります。
  [in] | smoothMode | true の場合、スムースシェーディングとなります。 false の場合はフラットシェーディングとなります。
  [in] | order | 最初の頂点IDを補正するオーダー。通常は 0 を入力して下さい。

参照
  fk_Solid

## ◆ MakeIFSet() [5/7]

void FK_CLI::fk_IndexFaceSet::MakeIFSet | ( | List< List< int >^ >^ | faceArray,
|  | List< fk_Vector^>^ | posArray,
|  | bool | smoothMode,
|  | int | order )

任意形状生成メソッド5

与えられたIFSデータから、形状を生成します。

引数

  [in]

  faceArray

  面データ配列。 IFSet を List< List<int> > 型、 polygon を List<int> 型としたとき、 以下のようにして面データを生成していきます。

      polygon = new List<int>();
      polygon.Add(頂点ID1);
      polygon.Add(頂点ID2);
          :
      polygon.Add(頂点IDn);
      IFSet.Add(polygon);

  [in] | posArray | 頂点位置ベクトルデータ配列
  [in] | smoothMode | true の場合、辺や頂点の周囲を滑らかにレンダリングします。 false の場合は辺や頂点を折れたものとしてレンダリングします。
  [in] | order | 最初の頂点IDを補正するオーダー。

## ◆ MakeIFSet() [6/7]

void FK_CLI::fk_IndexFaceSet::MakeIFSet | ( | List< List< int >^ >^ | faceArray,
|  | List< fk_Vector^>^ | posArray,
|  | bool | smoothMode )

任意形状生成メソッド6

与えられたIFSデータから、形状を生成します。

引数

  [in]

  faceArray

  面データ配列。 IFSet を List< List<int> > 型、 polygon を List<int> 型としたとき、 以下のようにして面データを生成していきます。

      polygon = new List<int>();
      polygon.Add(頂点ID1);
      polygon.Add(頂点ID2);
          :
      polygon.Add(頂点IDn);
      IFSet.Add(polygon);

  [in] | posArray | 頂点位置ベクトルデータ配列
  [in] | smoothMode | true の場合、辺や頂点の周囲を滑らかにレンダリングします。 false の場合は辺や頂点を折れたものとしてレンダリングします。

## ◆ MakeIFSet() [7/7]

void FK_CLI::fk_IndexFaceSet::MakeIFSet | ( | List< List< int >^ >^ | faceArray,
|  | List< fk_Vector^>^ | posArray )

任意形状生成メソッド7

与えられたIFSデータから、形状を生成します。

引数

  [in]

  faceArray

  面データ配列。 IFSet を List< List<int> > 型、 polygon を List<int> 型としたとき、 以下のようにして面データを生成していきます。

      polygon = new List<int>();
      polygon.Add(頂点ID1);
      polygon.Add(頂点ID2);
          :
      polygon.Add(頂点IDn);
      IFSet.Add(polygon);

  [in] | posArray | 頂点位置ベクトルデータ配列

## ◆ SetPNorm() [1/2]

bool FK_CLI::fk_IndexFaceSet::SetPNorm | ( | int | faceID,
|  | fk_Vector^ | norm,
|  | int | order )

面法線ベクトル設定メソッド1

面の法線ベクトルを設定します。

通常、面の法線ベクトルは自前で設定しなくても、 形状から自動的に算出されます。 しかし、バンプマッピングなどの技法を用いる場合など、 自前で計算した法線ベクトルを与える場合は、このメソッドを用います。

なお、 MoveVPosition() メソッドによって面上の点が移動された場合、 設定した法線ベクトルは破棄されます。

引数

  [in] | faceID | 面ID
  [in] | norm | 法線ベクトル。あらかじめ正規化しておく必要があります。 正規化されていない放線ベクトルを入力した場合、 動作が異常となる場合があります。
  [in] | order | 最初の頂点IDを補正するオーダー。通常は省略して問題ありません。

戻り値
  成功すれば true を、失敗すれば false を返します。

参照
  GetPNorm(), SetVNorm()

## ◆ SetPNorm() [2/2]

bool FK_CLI::fk_IndexFaceSet::SetPNorm | ( | int | faceID,
|  | fk_Vector^ | norm )

面法線ベクトル設定メソッド2

面の法線ベクトルを設定します。

通常、面の法線ベクトルは自前で設定しなくても、 形状から自動的に算出されます。 しかし、バンプマッピングなどの技法を用いる場合など、 自前で計算した法線ベクトルを与える場合は、このメソッドを用います。

なお、 MoveVPosition() メソッドによって面上の点が移動された場合、 設定した法線ベクトルは破棄されます。

本メソッドは SetPNorm(int, fk_Vector^, int) において、 第3引数に 0 を入力した場合と同義となります。

引数

  [in] | faceID | 面ID
  [in] | norm | 法線ベクトル。あらかじめ正規化しておく必要があります。 正規化されていない放線ベクトルを入力した場合、 動作が異常となる場合があります。

戻り値
  成功すれば true を、失敗すれば false を返します。

参照
  GetPNorm(), SetVNorm()

## ◆ SetVNorm() [1/2]

bool FK_CLI::fk_IndexFaceSet::SetVNorm | ( | int | vertexID,
|  | fk_Vector^ | norm,
|  | int | order )

頂点法線ベクトル設定メソッド1

頂点の法線ベクトルを設定します。

通常、頂点の法線ベクトルは自前で設定しなくても、 形状から自動的に算出されます。 しかし、バンプマッピングなどの技法を用いる場合など、 自前で計算した法線ベクトルを与える場合は、このメソッドを用います。

なお、 MoveVPosition() メソッドによって頂点が移動された場合、 設定した法線ベクトルは破棄されます。

引数

  [in] | vertexID | 頂点ID
  [in] | norm | 法線ベクトル。あらかじめ正規化しておく必要があります。 正規化されていない放線ベクトルを入力した場合、 動作が異常となる場合があります。
  [in] | order | 最初の頂点IDを補正するオーダー。通常は 0 を入力して下さい。

戻り値
  成功すれば true を、失敗すれば false を返します。

参照
  GetVNorm(), SetPNorm()

## ◆ SetVNorm() [2/2]

bool FK_CLI::fk_IndexFaceSet::SetVNorm | ( | int | vertexID,
|  | fk_Vector^ | norm )

頂点法線ベクトル設定メソッド1

頂点の法線ベクトルを設定します。

通常、頂点の法線ベクトルは自前で設定しなくても、 形状から自動的に算出されます。 しかし、バンプマッピングなどの技法を用いる場合など、 自前で計算した法線ベクトルを与える場合は、このメソッドを用います。

なお、 MoveVPosition() メソッドによって頂点が移動された場合、 設定した法線ベクトルは破棄されます。

本メソッドは SetVNorm(int, fk_Vector^, int) において、 第3引数に 0 を入力した場合と同義となります。

引数

  [in] | vertexID | 頂点ID
  [in] | norm | 法線ベクトル。あらかじめ正規化しておく必要があります。 正規化されていない放線ベクトルを入力した場合、 動作が異常となる場合があります。

戻り値
  成功すれば true を、失敗すれば false を返します。

参照
  GetVNorm(), SetPNorm()

## ◆ SetElemMaterialID()

bool FK_CLI::fk_IndexFaceSet::SetElemMaterialID | ( | int | faceID,
|  | int | materialID )

マテリアルID設定メソッド

面に対してマテリアルIDを設定します。 マテリアルの個別設定については fk_Shape::MaterialMode および fk_Shape::SetPalette() を参照して下さい。

引数

  [in] | faceID | 面ID
  [in] | materialID | マテリアルID

戻り値
  設定に成功すれば true を、失敗すれば false を返します。

参照
  GetElemMaterialID(), fk_Shape

## ◆ Flush()

void FK_CLI::fk_IndexFaceSet::Flush | ( | void |  | ) |

法線ベクトル強制計算メソッド

fk_IndexFaceSet では、 面や頂点の法線ベクトルは形状生成した時点ではまだ算出しません。 描画時など、実際に法線ベクトルが必要となった場合に随時計算が行われます。 この仕様は、必ずしも法線ベクトルを必要としない状況において 計算量を削減する効果がありますが、 一方でアプリケーションの実行において不都合を生じる場合があります。 例えば、対象形状が初めてシーンに登録された時点で 画面が一瞬止まってしまうといった状況が想定されます。

本メソッドは、形状中のすべての面と頂点に対して法線ベクトルを強制的に算出します。 なお、 SetPNorm() や SetVNorm() で設定した法線ベクトルは全て破棄されます。

参照
  GetPNorm(), GetVNorm(), SetPNorm(), SetVNorm()

## ◆ MakeBlock()

void FK_CLI::fk_IndexFaceSet::MakeBlock | ( | double | x,
|  | double | y,
|  | double | z )

直方体生成メソッド

直方体を生成します。

直方体は、原点の物体の中心が来るように配置されます。 従って、(x, y, z) という大きさで直方体を生成した場合、 各頂点の位置ベクトルは以下のようになります。

- (x/2, y/2, z/2)
- (-x/2, y/2, z/2)
- (-x/2, -y/2, z/2)
- (x/2, -y/2, z/2)
- (x/2, y/2, -z/2)
- (-x/2, y/2, -z/2)
- (-x/2, -y/2, -z/2)
- (x/2, -y/2, -z/2)

このメソッドを呼ぶ前に生成されていた形状や各種属性は破棄されます。

引数

  [in] | x | x方向の辺長
  [in] | y | y方向の辺長
  [in] | z | z方向の辺長

参照
  fk_Block

## ◆ SetBlockSize() [1/2]

void FK_CLI::fk_IndexFaceSet::SetBlockSize | ( | double | x,
|  | double | y,
|  | double | z )

直方体辺長変更メソッド

MakeBlock() によって直方体を生成した後に、 直方体の辺長を一括して設定しなおします。 このメソッドは、 MakeBlock() によって直方体を生成した場合のみ有効であり、 それ以外の形状状態に対してこのメソッドを呼んだときの挙動は保証されません。

引数

  [in] | x | x方向の辺長
  [in] | y | y方向の辺長
  [in] | z | z方向の辺長

参照
  MakeBlock(), fk_Block

## ◆ SetBlockSize() [2/2]

void FK_CLI::fk_IndexFaceSet::SetBlockSize | ( | double | length,
|  | fk_Axis | axis )

直方体個別辺長設定メソッド

MakeBlock() によって直方体を生成した後に、 直方体の辺長を個別に設定します。 このメソッドは、 MakeBlock() によって直方体を生成した場合のみ有効であり、 それ以外の形状状態に対してこのメソッドを呼んだときの挙動は保証されません。

引数

  [in] | length | 辺長

  [in]

  axis

  軸方向。以下のいずれかを指定します。
  - fk_Axis.X x方向
  - fk_Axis.Y y方向
  - fk_Axis.Z z方向

参照
  MakeBlock(), fk_Block

## ◆ SetBlockScale() [1/3]

void FK_CLI::fk_IndexFaceSet::SetBlockScale | ( | double | scale | ) |

直方体全体拡大縮小メソッド

MakeBlock() によって直方体を生成した後に、 直方体全体を指定された倍率で拡大・縮小します。 このメソッドは、 MakeBlock() によって直方体を生成した場合のみ有効であり、 それ以外の形状状態に対してこのメソッドを呼んだときの挙動は保証されません。

引数

  [in] | scale | 倍率

参照
  MakeBlock(), fk_Block

## ◆ SetBlockScale() [2/3]

void FK_CLI::fk_IndexFaceSet::SetBlockScale | ( | double | scale,
|  | fk_Axis | axis )

直方体軸方向拡大縮小メソッド

MakeBlock() によって直方体を生成した後に、 指定された軸方向についてのみ拡大・縮小します。 このメソッドは、 MakeBlock() によって直方体を生成した場合のみ有効であり、 それ以外の形状状態に対してこのメソッドを呼んだときの挙動は保証されません。

引数

  [in] | scale | 倍率

  [in]

  axis

  軸方向。以下のいずれかを指定します。
  - fk_Axis.X x方向
  - fk_Axis.Y y方向
  - fk_Axis.Z z方向

参照
  MakeBlock(), fk_Block

## ◆ SetBlockScale() [3/3]

void FK_CLI::fk_IndexFaceSet::SetBlockScale | ( | double | x,
|  | double | y,
|  | double | z )

直方体軸方向個別拡大縮小メソッド

MakeBlock() によって直方体を生成した後に、 各軸方向に対し個別の倍率で拡大・縮小します。 このメソッドは、 MakeBlock() によって直方体を生成した場合のみ有効であり、 それ以外の形状状態に対してこのメソッドを呼んだときの挙動は保証されません。

引数

  [in] | x | x方向の倍率
  [in] | y | y方向の倍率
  [in] | z | z方向の倍率

参照
  MakeBlock(), fk_Block

## ◆ MakeCircle()

void FK_CLI::fk_IndexFaceSet::MakeCircle | ( | int | div,
|  | double | rad )

円形状生成メソッド

円形状を生成します。

ここでの「円」は実際には正多角形を円に近似して扱っています。 多角形の角数は (分割数) * 4 となっています。 この多角形は、実質的には設定された半径の円に内接するものです。 円としての見栄えを良くするには分割数を大きめに設定すべきですが、 分割数の大きい円を大量に利用すると描画処理が遅くなるという問題が生じます。

初期状態では、中心を原点とし、 面の法線ベクトルが (0, 0, 1) となるように配置されます。

このメソッドを呼ぶ前に生成されていた形状や各種属性は破棄されます。

引数

  [in] | div | 分割数。実際には円弧全体をこの数値の 4 倍で分割します。
  [in] | rad | 半径

参照
  fk_Circle

## ◆ SetCircleRadius()

void FK_CLI::fk_IndexFaceSet::SetCircleRadius | ( | double | rad | ) |

円形状半径設定メソッド

MakeCircle() によって円形状を生成した後に、 半径を設定しなおします。 このメソッドは、 MakeCircle() によって円形状を生成した場合のみ有効であり、 それ以外の形状状態に対してこのメソッドを呼んだときの挙動は保証されません。

引数

  [in] | rad | 半径

参照
  MakeCircle(), fk_Circle

## ◆ SetCircleDivide()

void FK_CLI::fk_IndexFaceSet::SetCircleDivide | ( | int | div | ) |

円形状分割数設定メソッド

MakeCircle() によって円形状を生成した後に、 分割数を設定しなおします。 このメソッドは、 MakeCircle() によって円形状を生成した場合のみ有効であり、 それ以外の形状状態に対してこのメソッドを呼んだときの挙動は保証されません。

引数

  [in] | div | 分割数

参照
  MakeCircle(), fk_Circle

## ◆ SetCircleScale()

void FK_CLI::fk_IndexFaceSet::SetCircleScale | ( | double | scale | ) |

円形状拡大縮小メソッド

MakeCircle() によって円形状を生成した後に、 形状全体を与えられた倍率で拡大・縮小します。 このメソッドは、 MakeCircle() によって円形状を生成した場合のみ有効であり、 それ以外の形状状態に対してこのメソッドを呼んだときの挙動は保証されません。

引数

  [in] | scale | 倍率

参照
  MakeCircle(), fk_Circle

## ◆ MakeSphere()

void FK_CLI::fk_IndexFaceSet::MakeSphere | ( | int | div,
|  | double | rad )

球形状生成メソッド

球形状を生成します。

実際には、球を近似する3角形面集合として表現されています。 3角形面の数は分割数を \( d \) とした場合 \( 8d(d-1) \) 枚となります。 分割数が高いほど球としての描画精度は高くなりますが、 面数も多くなるため描画速度が低下することになります。 特に多くのオブジェクトを同時に配置する場合は注意が必要です。

初期状態では、中心を原点とするように配置されます。

このメソッドを呼ぶ前に生成されていた形状や各種属性は破棄されます。

引数

  [in] | div | 分割数
  [in] | rad | 半径

参照
  fk_Sphere

## ◆ SetSphereRadius()

void FK_CLI::fk_IndexFaceSet::SetSphereRadius | ( | double | rad | ) |

球形状半径設定メソッド

MakeSphere() によって球形状を生成した後に、 半径を設定しなおします。 このメソッドは、 MakeSphere() によって球形状を生成した場合のみ有効であり、 それ以外の形状状態に対してこのメソッドを呼んだときの挙動は保証されません。

引数

  [in] | rad | 半径

参照
  MakeSphere(), fk_Sphere

## ◆ SetSphereDivide()

void FK_CLI::fk_IndexFaceSet::SetSphereDivide | ( | int | div | ) |

球形状分割数設定メソッド

MakeSphere() によって球形状を生成した後に、 分割数を設定しなおします。 このメソッドは、 MakeSphere() によって球形状を生成した場合のみ有効であり、 それ以外の形状状態に対してこのメソッドを呼んだときの挙動は保証されません。

引数

  [in] | div | 分割数

参照
  MakeSphere(), fk_Sphere

## ◆ SetSphereScale()

void FK_CLI::fk_IndexFaceSet::SetSphereScale | ( | double | scale | ) |

球形状拡大縮小メソッド

MakeSphere() によって球形状を生成した後に、 形状全体を与えられた倍率で拡大・縮小します。 このメソッドは、 MakeSphere() によって球形状を生成した場合のみ有効であり、 それ以外の形状状態に対してこのメソッドを呼んだときの挙動は保証されません。

引数

  [in] | scale | 倍率

参照
  MakeSphere(), fk_Sphere

## ◆ MakePrism()

void FK_CLI::fk_IndexFaceSet::MakePrism | ( | int | div,
|  | double | top,
|  | double | bottom,
|  | double | height )

正多角柱(円柱)形状生成メソッド

正多角柱(円柱)を生成します。

円柱は、分割数の多い正多角柱として生成します。 通常、分割数が 20 を超える程度でほとんど円柱と見分けがつかなくなります。 配置は、底面の中心が原点となり、 多角柱の上面が -z 方向、底面が +z 方向となります。

設定できる要素は角数、上面半径、底面半径、高さの4要素です。 上面と底面の半径とは、それぞれの面を構成する正多角形の外接円半径を指します。

このメソッドを呼ぶ前に生成されていた形状や各種属性は破棄されます。

引数

  [in] | div | 角数
  [in] | top | 上面半径
  [in] | bottom | 底面半径
  [in] | height | 高さ

参照
  fk_Prism

## ◆ SetPrismDivide()

void FK_CLI::fk_IndexFaceSet::SetPrismDivide | ( | int | div | ) |

正多角柱(円柱)角数設定メソッド

MakePrism() によって正多角柱(円柱)を生成した後に、 角数を設定しなおします。 このメソッドは、 MakePrism() によって球形状を生成した場合のみ有効であり、 それ以外の形状状態に対してこのメソッドを呼んだときの挙動は保証されません。

引数

  [in] | div | 角数

参照
  MakePrism(), fk_Prism

## ◆ SetPrismTopRadius()

void FK_CLI::fk_IndexFaceSet::SetPrismTopRadius | ( | double | top | ) |

正多角柱(円柱)上面半径設定メソッド

MakePrism() によって正多角柱(円柱)を生成した後に、 上面の外接円半径を設定しなおします。 このメソッドは、 MakePrism() によって球形状を生成した場合のみ有効であり、 それ以外の形状状態に対してこのメソッドを呼んだときの挙動は保証されません。

引数

  [in] | top | 上面半径

参照
  MakePrism(), fk_Prism

## ◆ SetPrismBottomRadius()

void FK_CLI::fk_IndexFaceSet::SetPrismBottomRadius | ( | double | bottom | ) |

正多角柱(円柱)角数設定メソッド

MakePrism() によって正多角柱(円柱)を生成した後に、 底面の外接円半径を設定しなおします。 このメソッドは、 MakePrism() によって球形状を生成した場合のみ有効であり、 それ以外の形状状態に対してこのメソッドを呼んだときの挙動は保証されません。

引数

  [in] | bottom | 底面半径

参照
  MakePrism(), fk_Prism

## ◆ SetPrismHeight()

void FK_CLI::fk_IndexFaceSet::SetPrismHeight | ( | double | height | ) |

正多角柱(円柱)高さ設定メソッド

MakePrism() によって正多角柱(円柱)を生成した後に、 高さを設定しなおします。 このメソッドは、 MakePrism() によって球形状を生成した場合のみ有効であり、 それ以外の形状状態に対してこのメソッドを呼んだときの挙動は保証されません。

引数

  [in] | height | 高さ

参照
  MakePrism(), fk_Prism

## ◆ MakeCone()

void FK_CLI::fk_IndexFaceSet::MakeCone | ( | int | div,
|  | double | rad,
|  | double | height )

正多角錐(円錐)形状生成メソッド

正多角錐(円錐)を生成します。

円錐は、分割数の多い正多角錐として生成します。 通常、分割数が 20 を超える程度でほとんど円錐と見分けがつかなくなります。 配置は、底面の中心が原点となり、 頂点 -z 方向、底面が +z 方向となります。

設定できる要素は角数、底面半径、高さの3要素です。 底面半径とは、面を構成する正多角形の外接円半径を指します。

このメソッドを呼ぶ前に生成されていた形状や各種属性は破棄されます。

引数

  [in] | div | 角数
  [in] | rad | 底面半径
  [in] | height | 高さ

参照
  fk_Cone

## ◆ SetConeDivide()

void FK_CLI::fk_IndexFaceSet::SetConeDivide | ( | int | div | ) |

正多角錐(円錐)角数設定メソッド

MakeCone() によって正多角錐(円錐)を生成した後に、 角数を設定しなおします。 このメソッドは、 MakeCone() によって球形状を生成した場合のみ有効であり、 それ以外の形状状態に対してこのメソッドを呼んだときの挙動は保証されません。

引数

  [in] | div | 角数

参照
  MakeCone(), fk_Cone

## ◆ SetConeRadius()

void FK_CLI::fk_IndexFaceSet::SetConeRadius | ( | double | rad | ) |

正多角錐(円錐)底面半径設定メソッド

MakeCone() によって正多角錐(円錐)を生成した後に、 底面外接円半径を設定しなおします。 このメソッドは、 MakeCone() によって球形状を生成した場合のみ有効であり、 それ以外の形状状態に対してこのメソッドを呼んだときの挙動は保証されません。

引数

  [in] | rad | 底面半径

参照
  MakeCone(), fk_Cone

## ◆ SetConeHeight()

void FK_CLI::fk_IndexFaceSet::SetConeHeight | ( | double | height | ) |

正多角錐(円錐)高さ設定メソッド

MakeCone() によって正多角錐(円錐)を生成した後に、 高さを設定しなおします。 このメソッドは、 MakeCone() によって球形状を生成した場合のみ有効であり、 それ以外の形状状態に対してこのメソッドを呼んだときの挙動は保証されません。

引数

  [in] | height | 高さ

参照
  MakeCone(), fk_Cone

## ◆ MakeCapsule()

void FK_CLI::fk_IndexFaceSet::MakeCapsule | ( | int | div,
|  | double | len,
|  | double | rad )

カプセル型形状生成メソッド

カプセル型を生成します。 カプセル型は半径の等しい円柱側面と半球面によって構成されています。 数学的には、カプセル型の内部は1本の線分より一定距離以下の部分の集合であり、 その一定距離は前述の半径と等しくなります。この線分を「中心軸」と呼びます。 初期状態は中心軸の中点が原点に配置され、z軸方向と中心軸が平行となります。 設定できる要素は中心軸長、半径、分割数です。 実際のカプセル型の全長は「中心軸長 + (半径)*2」となります。

このメソッドを呼ぶ前に生成されていた形状や各種属性は破棄されます。

引数

  [in] | div | 分割数
  [in] | len | 中心軸長
  [in] | rad | 半径

参照
  fk_Capsule

## ◆ SetCapsuleSize()

void FK_CLI::fk_IndexFaceSet::SetCapsuleSize | ( | double | len,
|  | double | rad )

カプセル型形状寸法設定メソッド

MakeCapsule() によってカプセル型形状を生成した後に、 中心軸長と半径を再度設定します。 このメソッドは、 MakeCapsule() によってカプセル型形状を生成した場合のみ有効であり、 それ以外の形状状態に対してこのメソッドを呼んだときの挙動は保証されません。

引数

  [in] | len | 中心軸長
  [in] | rad | 半径

参照
  MakeCapsule(), fk_Capsule

## ◆ PutSolid()

void FK_CLI::fk_IndexFaceSet::PutSolid | ( | fk_Solid^ | solid | ) |

fk_Solid 出力メソッド

fk_IndexFaceSet 型にある形状情報を、 fk_Solid 型のインスタンスにコピーします。 fk_Solid 側に格納されている形状情報や属性情報は破棄されます。 なお、マテリアル情報や法線ベクトル情報はコピーされません。

引数

  [in] | solid | fk_Solid 型インスタンスのアドレス

参照
  fk_Solid

## ◆ CloneShape()

void FK_CLI::fk_IndexFaceSet::CloneShape | ( | fk_IndexFaceSet^ | ifs | ) |

形状コピーメソッド

引数として与えられたインスタンス中の形状をコピーします。 各種属性およびマテリアル情報は写しません。

引数

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

## プロパティ詳解

## ◆ PosSize

int FK_CLI::fk_IndexFaceSet::PosSize

get

頂点数プロパティ

形状データの頂点数を参照します。

## ◆ FaceSize

int FK_CLI::fk_IndexFaceSet::FaceSize

get

面数プロパティ

形状データの面数を参照します。

## ◆ AnimationTime

double FK_CLI::fk_IndexFaceSet::AnimationTime

set

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

D3DX形式からの入力や、 BVH情報からの入力によってアニメーションが設定されている場合、 このプロパティを用いることで形状状態を任意のアニメーション時間に設定することができます。

参照
  ReadD3DXFile(), BVHMotion, fk_BVHMotion

## ◆ BVHMotion

fk_BVHMotion^ FK_CLI::fk_IndexFaceSet::BVHMotion

set

BVHデータプロパティ

形状に対し、BVH 形式によるアニメーションを設定します。

参照
  AnimationTime, ReadD3DXFile(), fk_BVHMotion