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

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

+ 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_VectorGetPosVec (int vertexID)
 頂点位置ベクトル参照メソッド [詳解]
 
cli::array< int >^ GetFaceData (int faceID)
 頂点 ID 配列参照メソッド [詳解]
 
int GetFaceData (int faceID, int vertexNum)
 頂点 ID 参照メソッド [詳解]
 
fk_VectorGetPNorm (int faceID, int order)
 面法線ベクトル取得メソッド1 [詳解]
 
fk_VectorGetPNorm (int faceID)
 面法線ベクトル取得メソッド2 [詳解]
 
fk_VectorGetVNorm (int vertexID, int order)
 頂点法線ベクトル取得メソッド1 [詳解]
 
fk_VectorGetVNorm (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 [詳解]
 
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 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 型である属性消去メソッド [詳解]
 

プロパティ

int PosSize [get]
 頂点数プロパティ [詳解]
 
int FaceSize [get]
 面数プロパティ [詳解]
 
fk_IFType^  FaceType [get]
 面タイププロパティ [詳解]
 
double AnimationTime [set]
 アニメーション時間プロパティ [詳解]
 
fk_BVHMotion^  BVHMotion [set]
 BVHデータプロパティ [詳解]
 
- 基底クラス 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]
 マテリアル配列取得メソッド [詳解]
 

詳解

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

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

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

また、これらのデータファイル入力の他に、 頂点座標データとインデックスフェースデータから 形状を自前で生成することも可能です。 ただし、作成できる形状には制限があります。 この機能の詳細は 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_CLI::fk_IndexFaceSet::fk_IndexFaceSet ( )

コンストラクタ

FK_CLI::fk_IndexFaceSet::~fk_IndexFaceSet ( )

デストラクタ

FK_CLI::fk_IndexFaceSet::!fk_IndexFaceSet ( )

ファイナライザ

関数詳解

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

SMFファイル入力メソッド

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

引数
[in]nameファイル名
戻り値
成功すれば true を、失敗すれば false を返します。
bool FK_CLI::fk_IndexFaceSet::ReadVRMLFile ( String^  name,
bool  materialFlg,
bool  solidFlg 
)

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

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

引数
[in]nameファイル名
[in]materialFlgtrue の場合、 VRMLファイル中で設定されているマテリアル情報を入力します。 false の場合は、マテリアル情報を無視します。
[in]solidFlgtrue の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 入力データのままインデックスフェースセットを構築します。
戻り値
成功すれば true を、失敗すれば false を返します。
覚え書き
VRML形式は、1994年に策定された通称「VRML1.0」と、 1997年に策定された「VRML97」の2種類があり、 VRML97は「VRML2.0」とも呼ばれます。 本メソッドでは入力フォーマットとして VRML2.0 を想定しています。
VRMLは文法解釈、 特にセパレータの扱い方についてはあまり厳密になっておらず、 様々なデータによって異なる解釈がなされているようです。 そのため、構文解析がうまくいかずに入力失敗する場合がありえます。
bool FK_CLI::fk_IndexFaceSet::ReadVRMLFile ( String^  name,
bool  materialFlg 
)

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

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

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

引数
[in]nameファイル名
[in]materialFlgtrue の場合、 VRMLファイル中で設定されているマテリアル情報を入力します。 false の場合は、マテリアル情報を無視します。
戻り値
成功すれば true を、失敗すれば false を返します。
覚え書き
VRML形式は、1994年に策定された通称「VRML1.0」と、 1997年に策定された「VRML97」の2種類があり、 VRML97は「VRML2.0」とも呼ばれます。 本メソッドでは入力フォーマットとして VRML2.0 を想定しています。
VRMLは文法解釈、 特にセパレータの扱い方についてはあまり厳密になっておらず、 様々なデータによって異なる解釈がなされているようです。 そのため、構文解析がうまくいかずに入力失敗する場合がありえます。
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は文法解釈、 特にセパレータの扱い方についてはあまり厳密になっておらず、 様々なデータによって異なる解釈がなされているようです。 そのため、構文解析がうまくいかずに入力失敗する場合がありえます。
bool FK_CLI::fk_IndexFaceSet::ReadSTLFile ( String^  name,
bool  solidFlg,
double  tolerance 
)

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

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

  • 5以上の角数である面が存在する。
  • 3角形面と4角形面が混在している。
引数
[in]nameファイル名
[in]solidFlgtrue の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。
[in]tolerancesolidFlg で true を指定した場合、 頂点同士が同一かどうかを判断するための距離許容誤差を指定します。 solidFlg が false であった場合、この値は無視されます。
戻り値
成功すれば true を、失敗すれば false を返します。
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]solidFlgtrue の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。
戻り値
成功すれば true を、失敗すれば false を返します。
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 を返します。
bool FK_CLI::fk_IndexFaceSet::ReadHRCFile ( String^  name)

HRCファイル入力メソッド

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

引数
[in]nameファイル名
戻り値
成功すれば true を、失敗すれば false を返します。
bool FK_CLI::fk_IndexFaceSet::ReadRDSFile ( String^  name,
bool  solidFlg 
)

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

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

引数
[in]nameファイル名
[in]solidFlgtrue の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。
戻り値
成功すれば true を、失敗すれば false を返します。
bool FK_CLI::fk_IndexFaceSet::ReadRDSFile ( String^  name)

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

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

引数
[in]nameファイル名
戻り値
成功すれば true を、失敗すれば false を返します。
bool FK_CLI::fk_IndexFaceSet::ReadDXFFile ( String^  name,
bool  solidFlg 
)

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

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

引数
[in]nameファイル名
[in]solidFlgtrue の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。
戻り値
成功すれば true を、失敗すれば false を返します。
bool FK_CLI::fk_IndexFaceSet::ReadDXFFile ( String^  name)

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

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

引数
[in]nameファイル名
戻り値
成功すれば true を、失敗すれば false を返します。
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]solidFlgtrue の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。
[in]contFlgテクスチャ断絶の設定を指定します。これは、テクスチャ座標が不連続な箇所に対し、 形状の位相を断絶する操作を行うためのものです。 これを true にした場合は断裂操作が行われ、 テクスチャ座標が不連続な箇所が幾何的にも不連続となるように表示されます。 ほとんどの場合は、断裂操作を行った方が良好な描画結果となります。 ただし、断裂操作を行う際に新たな位相要素を生成するため、 本来のデータよりも頂点、稜線、面が若干増加する場合があります。 false にした場合は、断裂操作を行わずに通常のデータ通り読み込みます。
[in]materialFlgtrue の場合、MQOファイル中で設定されているマテリアル情報を入力します。 false の場合は、マテリアル情報を無視します。
戻り値
成功すれば true を、失敗すれば false を返します。
参照
ReadMQOData(), fk_IFSTexture::ReadMQOFile()
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]solidFlgtrue の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。
[in]contFlgテクスチャ断絶の設定を指定します。これは、テクスチャ座標が不連続な箇所に対し、 形状の位相を断絶する操作を行うためのものです。 これを true にした場合は断裂操作が行われ、 テクスチャ座標が不連続な箇所が幾何的にも不連続となるように表示されます。 ほとんどの場合は、断裂操作を行った方が良好な描画結果となります。 ただし、断裂操作を行う際に新たな位相要素を生成するため、 本来のデータよりも頂点、稜線、面が若干増加する場合があります。 false にした場合は、断裂操作を行わずに通常のデータ通り読み込みます。
戻り値
成功すれば true を、失敗すれば false を返します。
参照
ReadMQOData(), fk_IFSTexture::ReadMQOFile()
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]solidFlgtrue の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。
戻り値
成功すれば true を、失敗すれば false を返します。
参照
ReadMQOData(), fk_IFSTexture::ReadMQOFile()
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()
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]materialIDMQOデータではマテリアルを複数設定することができ、 各ポリゴンに対してどのマテリアルを割り振るかのIDが設定されています。 この引数にマテリアルIDを指定すると、そのIDを持つポリゴンのみを読み込みます。 materialID に -1 を入力した場合は、すべてのポリゴンを読み込みます。
[in]solidFlgtrue の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。
[in]contFlgテクスチャ断絶の設定を指定します。これは、テクスチャ座標が不連続な箇所に対し、 形状の位相を断絶する操作を行うためのものです。 これを true にした場合は断裂操作が行われ、 テクスチャ座標が不連続な箇所が幾何的にも不連続となるように表示されます。 ほとんどの場合は、断裂操作を行った方が良好な描画結果となります。 ただし、断裂操作を行う際に新たな位相要素を生成するため、 本来のデータよりも頂点、稜線、面が若干増加する場合があります。 false にした場合は、断裂操作を行わずに通常のデータ通り読み込みます。
[in]materialFlgtrue の場合、MQOファイル中で設定されているマテリアル情報を入力します。 false の場合は、マテリアル情報を無視します。
戻り値
成功すれば true を、失敗すれば false を返します。
参照
ReadMQOData(), fk_IFSTexture::ReadMQOFile()
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]materialIDMQOデータではマテリアルを複数設定することができ、 各ポリゴンに対してどのマテリアルを割り振るかのIDが設定されています。 この引数にマテリアルIDを指定すると、そのIDを持つポリゴンのみを読み込みます。 materialID に -1 を入力した場合は、すべてのポリゴンを読み込みます。
[in]solidFlgtrue の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。
[in]contFlgテクスチャ断絶の設定を指定します。これは、テクスチャ座標が不連続な箇所に対し、 形状の位相を断絶する操作を行うためのものです。 これを true にした場合は断裂操作が行われ、 テクスチャ座標が不連続な箇所が幾何的にも不連続となるように表示されます。 ほとんどの場合は、断裂操作を行った方が良好な描画結果となります。 ただし、断裂操作を行う際に新たな位相要素を生成するため、 本来のデータよりも頂点、稜線、面が若干増加する場合があります。 false にした場合は、断裂操作を行わずに通常のデータ通り読み込みます。
戻り値
成功すれば true を、失敗すれば false を返します。
参照
ReadMQOData(), fk_IFSTexture::ReadMQOFile()
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]materialIDMQOデータではマテリアルを複数設定することができ、 各ポリゴンに対してどのマテリアルを割り振るかのIDが設定されています。 この引数にマテリアルIDを指定すると、そのIDを持つポリゴンのみを読み込みます。 materialID に -1 を入力した場合は、すべてのポリゴンを読み込みます。
[in]solidFlgtrue の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。
戻り値
成功すれば true を、失敗すれば false を返します。
参照
ReadMQOData(), fk_IFSTexture::ReadMQOFile()
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]materialIDMQOデータではマテリアルを複数設定することができ、 各ポリゴンに対してどのマテリアルを割り振るかのIDが設定されています。 この引数にマテリアルIDを指定すると、そのIDを持つポリゴンのみを読み込みます。 materialID に -1 を入力した場合は、すべてのポリゴンを読み込みます。
戻り値
成功すれば true を、失敗すれば false を返します。
参照
ReadMQOData(), fk_IFSTexture::ReadMQOFile()
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]solidFlgtrue の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。
[in]contFlgテクスチャ断絶の設定を指定します。これは、テクスチャ座標が不連続な箇所に対し、 形状の位相を断絶する操作を行うためのものです。 これを true にした場合は断裂操作が行われ、 テクスチャ座標が不連続な箇所が幾何的にも不連続となるように表示されます。 ほとんどの場合は、断裂操作を行った方が良好な描画結果となります。 ただし、断裂操作を行う際に新たな位相要素を生成するため、 本来のデータよりも頂点、稜線、面が若干増加する場合があります。 false にした場合は、断裂操作を行わずに通常のデータ通り読み込みます。
[in]materialFlgtrue の場合、MQOデータ中で設定されているマテリアル情報を入力します。 false の場合は、マテリアル情報を無視します。
戻り値
成功すれば true を、失敗すれば false を返します。
参照
ReadMQOFile()
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]solidFlgtrue の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。
[in]contFlgテクスチャ断絶の設定を指定します。これは、テクスチャ座標が不連続な箇所に対し、 形状の位相を断絶する操作を行うためのものです。 これを true にした場合は断裂操作が行われ、 テクスチャ座標が不連続な箇所が幾何的にも不連続となるように表示されます。 ほとんどの場合は、断裂操作を行った方が良好な描画結果となります。 ただし、断裂操作を行う際に新たな位相要素を生成するため、 本来のデータよりも頂点、稜線、面が若干増加する場合があります。 false にした場合は、断裂操作を行わずに通常のデータ通り読み込みます。
戻り値
成功すれば true を、失敗すれば false を返します。
参照
ReadMQOFile()
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]solidFlgtrue の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。
戻り値
成功すれば true を、失敗すれば false を返します。
参照
ReadMQOFile()
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()
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]materialIDMQOデータではマテリアルを複数設定することができ、 各ポリゴンに対してどのマテリアルを割り振るかのIDが設定されています。 この引数にマテリアルIDを指定すると、そのIDを持つポリゴンのみを読み込みます。 materialID に -1 を入力した場合は、すべてのポリゴンを読み込みます。
[in]solidFlgtrue の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。
[in]contFlgテクスチャ断絶の設定を指定します。これは、テクスチャ座標が不連続な箇所に対し、 形状の位相を断絶する操作を行うためのものです。 これを true にした場合は断裂操作が行われ、 テクスチャ座標が不連続な箇所が幾何的にも不連続となるように表示されます。 ほとんどの場合は、断裂操作を行った方が良好な描画結果となります。 ただし、断裂操作を行う際に新たな位相要素を生成するため、 本来のデータよりも頂点、稜線、面が若干増加する場合があります。 false にした場合は、断裂操作を行わずに通常のデータ通り読み込みます。
[in]materialFlgtrue の場合、MQOデータ中で設定されているマテリアル情報を入力します。 false の場合は、マテリアル情報を無視します。
戻り値
成功すれば true を、失敗すれば false を返します。
参照
ReadMQOFile()
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]materialIDMQOデータではマテリアルを複数設定することができ、 各ポリゴンに対してどのマテリアルを割り振るかのIDが設定されています。 この引数にマテリアルIDを指定すると、そのIDを持つポリゴンのみを読み込みます。 materialID に -1 を入力した場合は、すべてのポリゴンを読み込みます。
[in]solidFlgtrue の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。
[in]contFlgテクスチャ断絶の設定を指定します。これは、テクスチャ座標が不連続な箇所に対し、 形状の位相を断絶する操作を行うためのものです。 これを true にした場合は断裂操作が行われ、 テクスチャ座標が不連続な箇所が幾何的にも不連続となるように表示されます。 ほとんどの場合は、断裂操作を行った方が良好な描画結果となります。 ただし、断裂操作を行う際に新たな位相要素を生成するため、 本来のデータよりも頂点、稜線、面が若干増加する場合があります。 false にした場合は、断裂操作を行わずに通常のデータ通り読み込みます。
戻り値
成功すれば true を、失敗すれば false を返します。
参照
ReadMQOFile()
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]materialIDMQOデータではマテリアルを複数設定することができ、 各ポリゴンに対してどのマテリアルを割り振るかのIDが設定されています。 この引数にマテリアルIDを指定すると、そのIDを持つポリゴンのみを読み込みます。 materialID に -1 を入力した場合は、すべてのポリゴンを読み込みます。
[in]solidFlgtrue の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。
戻り値
成功すれば true を、失敗すれば false を返します。
参照
ReadMQOFile()
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]materialIDMQOデータではマテリアルを複数設定することができ、 各ポリゴンに対してどのマテリアルを割り振るかのIDが設定されています。 この引数にマテリアルIDを指定すると、そのIDを持つポリゴンのみを読み込みます。 materialID に -1 を入力した場合は、すべてのポリゴンを読み込みます。
戻り値
成功すれば true を、失敗すれば false を返します。
参照
ReadMQOFile()
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]solidFlgtrue の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。
戻り値
ファイルの入力に成功した場合 true を、失敗した場合 false を返します。
参照
fk_IFSTexture::ReadD3DXFile()
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()
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]materialIDD3DXデータではマテリアルを複数設定することができ、 各ポリゴンに対してどのマテリアルを割り振るかのIDが設定されています。 この引数にマテリアルIDを指定すると、そのIDを持つポリゴンのみを読み込みます。 materialID に -1 を入力した場合は、すべてのポリゴンを読み込みます。
[in]solidFlgtrue の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。
戻り値
ファイルの入力に成功した場合 true を、失敗した場合 false を返します。
参照
fk_IFSTexture::ReadD3DXFile()
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]materialIDD3DXデータではマテリアルを複数設定することができ、 各ポリゴンに対してどのマテリアルを割り振るかのIDが設定されています。 この引数にマテリアルIDを指定すると、そのIDを持つポリゴンのみを読み込みます。 materialID に -1 を入力した場合は、すべてのポリゴンを読み込みます。
戻り値
ファイルの入力に成功した場合 true を、失敗した場合 false を返します。
参照
fk_IFSTexture::ReadD3DXFile()
bool FK_CLI::fk_IndexFaceSet::WriteVRMLFile ( String^  fileName,
fk_Material material,
bool  triFlg 
)

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

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

引数
[in]fileNameファイル名
[in]materialVRMLファイル中に「Material」ノードとしてマテリアル情報を保存します。 null を代入した場合は、VRMLファイル中に「Material」ノードを生成しません。
[in]triFlg仮想メソッドからの継承のために存在する引数で、処理には一切影響しません。
戻り値
ファイルの出力に成功した場合 true を、失敗した場合 false を返します。
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]materialVRMLファイル中に「Material」ノードとしてマテリアル情報を保存します。 null を代入した場合は、VRMLファイル中に「Material」ノードを生成しません。
戻り値
ファイルの出力に成功した場合 true を、失敗した場合 false を返します。
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 を返します。
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]timeCoordinateInterpolator における時間配列 (key) を入力します。
[in]posCoordinateInterpolator における位置ベクトル配列 (keyValue) を入力します。
[in]materialVRMLファイル中に「Material」ノードとしてマテリアル情報を保存します。 nullptr を代入した場合は、VRMLファイル中に「Material」ノードを生成しません。
[in]triFlg仮想メソッドからの継承のために存在する引数で、処理には一切影響しません。
戻り値
ファイルの出力に成功した場合 true を、失敗した場合 false を返します。
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]timeCoordinateInterpolator における時間配列 (key) を入力します。
[in]posCoordinateInterpolator における位置ベクトル配列 (keyValue) を入力します。
[in]materialVRMLファイル中に「Material」ノードとしてマテリアル情報を保存します。 nullptr を代入した場合は、VRMLファイル中に「Material」ノードを生成しません。
戻り値
ファイルの出力に成功した場合 true を、失敗した場合 false を返します。
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]timeCoordinateInterpolator における時間配列 (key) を入力します。
[in]posCoordinateInterpolator における位置ベクトル配列 (keyValue) を入力します。
戻り値
ファイルの出力に成功した場合 true を、失敗した場合 false を返します。
bool FK_CLI::fk_IndexFaceSet::WriteSTLFile ( String^  fileName)

STL ファイル出力メソッド

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

引数
[in]fileNameファイル名
戻り値
ファイルの出力に成功した場合 true を、失敗した場合 false を返します。
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 を返します。
bool FK_CLI::fk_IndexFaceSet::WriteDXFFile ( String^  fileName)

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

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

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

引数
[in]fileNameファイル名
戻り値
ファイルの出力に成功した場合 true を、失敗した場合 false を返します。
bool FK_CLI::fk_IndexFaceSet::WriteMQOFile ( String^  fileName)

MQO ファイル出力メソッド

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

引数
[in]fileNameファイル名
戻り値
ファイルの出力に成功した場合 true を、失敗した場合 false を返します。
fk_Vector ^ FK_CLI::fk_IndexFaceSet::GetPosVec ( int  vertexID)

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

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

引数
[in]vertexID頂点ID。一番最初の頂点IDは 0 になります。 最後の ID は頂点数から 1 を引いたものとなります。
戻り値
頂点の位置ベクトル
参照
MoveVPosition()
cli::array<int> ^ FK_CLI::fk_IndexFaceSet::GetFaceData ( int  faceID)

頂点 ID 配列参照メソッド

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

引数
[in]faceID面 ID。一番最初の面IDは 0 になります。 最後の ID は面数から 1 を引いたものとなります。
戻り値
頂点 ID 配列
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
fk_Vector ^ FK_CLI::fk_IndexFaceSet::GetPNorm ( int  faceID,
int  order 
)

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

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

引数
[in]faceID面ID
[in]order最初の面IDを補正するオーダー。通常は 0 を入力して下さい。
戻り値
面の法線ベクトル
参照
SetPNorm(), GetVNorm()
fk_Vector ^ FK_CLI::fk_IndexFaceSet::GetPNorm ( int  faceID)

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

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

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

引数
[in]faceID面ID
戻り値
面の法線ベクトル
参照
SetPNorm(), GetVNorm()
fk_Vector ^ FK_CLI::fk_IndexFaceSet::GetVNorm ( int  vertexID,
int  order 
)

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

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

引数
[in]vertexID頂点ID
[in]order最初の頂点IDを補正するオーダー。通常は 0 を入力して下さい。
戻り値
頂点の法線ベクトル
参照
SetVNorm(), GetPNorm()
fk_Vector ^ FK_CLI::fk_IndexFaceSet::GetVNorm ( int  vertexID)

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

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

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

引数
[in]vertexID頂点ID
戻り値
頂点の法線ベクトル
参照
SetVNorm(), GetPNorm()
int FK_CLI::fk_IndexFaceSet::GetElemMaterialID ( int  faceID)

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

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

引数
[in]faceID面ID
戻り値
マテリアルID
参照
SetElemMaterialID(), fk_Shape
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()
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()
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()
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()
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()
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()
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
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
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()
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()
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()
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()
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
void FK_CLI::fk_IndexFaceSet::Flush ( void  )

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

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

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

参照
GetPNorm(), GetVNorm(), SetPNorm(), SetVNorm()
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]xx方向の辺長
[in]yy方向の辺長
[in]zz方向の辺長
参照
fk_Block
void FK_CLI::fk_IndexFaceSet::SetBlockSize ( double  x,
double  y,
double  z 
)

直方体辺長変更メソッド

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

引数
[in]xx方向の辺長
[in]yy方向の辺長
[in]zz方向の辺長
参照
MakeBlock(), fk_Block
void FK_CLI::fk_IndexFaceSet::SetBlockSize ( double  length,
fk_Axis  axis 
)

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

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

引数
[in]length辺長
[in]axis軸方向。以下のいずれかを指定します。
参照
MakeBlock(), fk_Block
void FK_CLI::fk_IndexFaceSet::SetBlockScale ( double  scale)

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

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

引数
[in]scale倍率
参照
MakeBlock(), fk_Block
void FK_CLI::fk_IndexFaceSet::SetBlockScale ( double  scale,
fk_Axis  axis 
)

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

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

引数
[in]scale倍率
[in]axis軸方向。以下のいずれかを指定します。
参照
MakeBlock(), fk_Block
void FK_CLI::fk_IndexFaceSet::SetBlockScale ( double  x,
double  y,
double  z 
)

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

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

引数
[in]xx方向の倍率
[in]yy方向の倍率
[in]zz方向の倍率
参照
MakeBlock(), fk_Block
void FK_CLI::fk_IndexFaceSet::MakeCircle ( int  div,
double  rad 
)

円形状生成メソッド

円形状を生成します。

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

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

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

引数
[in]div分割数。実際には円弧全体をこの数値の 4 倍で分割します。
[in]rad半径
参照
fk_Circle
void FK_CLI::fk_IndexFaceSet::SetCircleRadius ( double  rad)

円形状半径設定メソッド

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

引数
[in]rad半径
参照
MakeCircle(), fk_Circle
void FK_CLI::fk_IndexFaceSet::SetCircleDivide ( int  div)

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

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

引数
[in]div分割数
参照
MakeCircle(), fk_Circle
void FK_CLI::fk_IndexFaceSet::SetCircleScale ( double  scale)

円形状拡大縮小メソッド

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

引数
[in]scale倍率
参照
MakeCircle(), fk_Circle
void FK_CLI::fk_IndexFaceSet::MakeSphere ( int  div,
double  rad 
)

球形状生成メソッド

球形状を生成します。

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

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

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

引数
[in]div分割数
[in]rad半径
参照
fk_Sphere
void FK_CLI::fk_IndexFaceSet::SetSphereRadius ( double  rad)

球形状半径設定メソッド

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

引数
[in]rad半径
参照
MakeSphere(), fk_Sphere
void FK_CLI::fk_IndexFaceSet::SetSphereDivide ( int  div)

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

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

引数
[in]div分割数
参照
MakeSphere(), fk_Sphere
void FK_CLI::fk_IndexFaceSet::SetSphereScale ( double  scale)

球形状拡大縮小メソッド

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

引数
[in]scale倍率
参照
MakeSphere(), fk_Sphere
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
void FK_CLI::fk_IndexFaceSet::SetPrismDivide ( int  div)

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

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

引数
[in]div角数
参照
MakePrism(), fk_Prism
void FK_CLI::fk_IndexFaceSet::SetPrismTopRadius ( double  top)

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

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

引数
[in]top上面半径
参照
MakePrism(), fk_Prism
void FK_CLI::fk_IndexFaceSet::SetPrismBottomRadius ( double  bottom)

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

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

引数
[in]bottom底面半径
参照
MakePrism(), fk_Prism
void FK_CLI::fk_IndexFaceSet::SetPrismHeight ( double  height)

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

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

引数
[in]height高さ
参照
MakePrism(), fk_Prism
void FK_CLI::fk_IndexFaceSet::MakeCone ( int  div,
double  rad,
double  height 
)

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

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

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

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

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

引数
[in]div角数
[in]rad底面半径
[in]height高さ
参照
fk_Cone
void FK_CLI::fk_IndexFaceSet::SetConeDivide ( int  div)

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

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

引数
[in]div角数
参照
MakeCone(), fk_Cone
void FK_CLI::fk_IndexFaceSet::SetConeRadius ( double  rad)

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

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

引数
[in]rad底面半径
参照
MakeCone(), fk_Cone
void FK_CLI::fk_IndexFaceSet::SetConeHeight ( double  height)

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

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

引数
[in]height高さ
参照
MakeCone(), fk_Cone
void FK_CLI::fk_IndexFaceSet::MakeCapsule ( int  div,
double  len,
double  rad 
)

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

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

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

引数
[in]div分割数
[in]len中心軸長
[in]rad半径
参照
fk_Capsule
void FK_CLI::fk_IndexFaceSet::SetCapsuleSize ( double  len,
double  rad 
)

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

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

引数
[in]len中心軸長
[in]rad半径
参照
MakeCapsule(), fk_Capsule
void FK_CLI::fk_IndexFaceSet::PutSolid ( fk_Solid solid)

fk_Solid 出力メソッド

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

引数
[in]solidfk_Solid 型インスタンスのアドレス
参照
fk_Solid
void FK_CLI::fk_IndexFaceSet::CloneShape ( fk_IndexFaceSet ifs)

形状コピーメソッド

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

引数
[in]ifs複写元インスタンス

プロパティ詳解

int FK_CLI::fk_IndexFaceSet::PosSize
get

頂点数プロパティ

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

int FK_CLI::fk_IndexFaceSet::FaceSize
get

面数プロパティ

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

fk_IFType^ FK_CLI::fk_IndexFaceSet::FaceType
get

面タイププロパティ

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

double FK_CLI::fk_IndexFaceSet::AnimationTime
set

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

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

参照
ReadD3DXFile(), BVHMotion, fk_BVHMotion
fk_BVHMotion^ FK_CLI::fk_IndexFaceSet::BVHMotion
set

BVHデータプロパティ

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

参照
AnimationTime, ReadD3DXFile(), fk_BVHMotion