FineKernelToolKit  2.9.0
 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 フレンド マクロ定義 ページ
Public メソッド | すべてのメンバ一覧
クラス fk_Solid

半稜線構造 (Half-Edge Structure) による任意形状を生成、管理するクラス [詳細]

+ fk_Solidに対する継承グラフ
+ fk_Solidのコラボレーション図

Public メソッド

 fk_Solid (void)
 コンストラクタ [詳細]
 
virtual ~fk_Solid ()
 デストラクタ [詳細]
 
void allClear (bool matFlg=true)
 形状初期化関数 [詳細]
 
bool isEmpty (void)
 空形状状態参照関数 [詳細]
 
void cloneShape (fk_Solid *solid)
 形状コピー関数 [詳細]
 
bool compareShape (fk_Solid *solid)
 形状同値比較関数 [詳細]
 
ファイル入力関数
bool readSMFFile (std::string fileName)
 SMFファイル入力関数 [詳細]
 
bool readSRFFile (std::string fileName)
 SRFファイル入力関数 [詳細]
 
bool readVRMLFile (std::string fileName, bool materialFlg=true, bool solidFlg=true)
 VRML ファイル入力関数 [詳細]
 
bool readSTLFile (std::string fileName, bool solidFlg=true, double tolerance=1.0e-08)
 STL ファイル入力関数 [詳細]
 
bool readHRCFile (std::string fileName)
 HRCファイル入力関数 [詳細]
 
bool readRDSFile (std::string fileName, bool solidFlg=true)
 RDSファイル入力関数 [詳細]
 
bool readDXFFile (std::string fileName, bool solidFlg=true)
 DXFファイル入力関数 [詳細]
 
bool readMQOFile (std::string fileName, std::string objName, bool solidFlg=true, bool contFlg=true, bool materialFlg=false)
 MQOファイル入力関数1. [詳細]
 
bool readMQOFile (std::string fileName, std::string objName, int materialID, bool solidFlg=true, bool contFlg=true, bool materialFlg=false)
 MQOファイル入力関数2. [詳細]
 
bool readD3DXFile (std::string fileName, std::string objName, bool solidFlg=true)
 DirectX (D3DX) ファイル入力関数1. [詳細]
 
bool readD3DXFile (std::string fileName, std::string objName, int materialID, bool solidFlg=true)
 DirectX (D3DX) ファイル入力関数2. [詳細]
 
bool readData (std::string fileName, bool sizeMode=true)
 独自形式ファイル入力関数 [詳細]
 
bool readData (FILE *fp, fk_DataFormatMode mode=FK_BINARY_FILE, bool sizeMode=true)
 独自形式ファイルストリーム入力関数 [詳細]
 
ファイル出力関数
bool writeVRMLFile (std::string fileName, fk_Material *material=NULL, bool triFlg=false)
 VRML ファイル出力関数1. [詳細]
 
bool writeVRMLFile (std::string fileName, std::vector< double > *time, std::vector< fk_Vector > *pos, fk_Material *material=NULL, bool triFlg=false)
 VRML ファイル出力関数2. [詳細]
 
bool writeSTLFile (std::string fileName)
 STL ファイル出力関数 [詳細]
 
bool writeDXFFile (std::string fileName, bool triFlg=false)
 DXF ファイル出力関数 [詳細]
 
bool writeMQOFile (std::string fileName)
 MQO ファイル出力関数 [詳細]
 
bool writeData (std::string fileName, fk_DataFormatMode mode=FK_BINARY_FILE)
 独自形式ファイル出力関数 [詳細]
 
bool writeData (FILE *fp, fk_DataFormatMode mode=FK_BINARY_FILE)
 独自形式ファイルストリーム出力関数 [詳細]
 
- Public メソッド inherited from fk_SolidBase
 fk_SolidBase (void)
 コンストラクタ [詳細]
 
virtual ~fk_SolidBase ()
 デストラクタ [詳細]
 
void makeIFSet (int faceNum, int polyNum, int *IFSet, int vertexNum, fk_Vector *posArray, int order=0)
 任意形状生成関数1 [詳細]
 
void makeIFSet (std::vector< std::vector< int > > *faceArray, std::vector< fk_Vector > *posArray, int order=0)
 任意形状生成関数2 [詳細]
 
- Public メソッド inherited from fk_Modify
 fk_Modify (fk_DataBase *=(fk_DataBase *) NULL)
 コンストラクタ [詳細]
 
virtual ~fk_Modify ()
 デストラクタ [詳細]
 
fk_LoopremoveVertexInLoop (fk_Vertex *V)
 頂点削除関数 [詳細]
 
bool contractEdge (fk_Edge *E, bool R=true)
 稜線削除関数1 [詳細]
 
bool contractEdge (fk_Edge *E, fk_Vector P, bool R=true)
 稜線削除関数2 [詳細]
 
bool checkContract (fk_Edge *E)
 稜線削除可能判定関数 [詳細]
 
fk_LoopmakePolygon (std::vector< fk_Vector > *array, bool openFlg, bool initFlg=true)
 多角形生成関数1 [詳細]
 
fk_LoopmakePolygon (int num, fk_Vector *array, bool openFlg, bool initFlg=true)
 多角形生成関数2 [詳細]
 
fk_LooppushPolygon (std::vector< fk_Vector > *array, bool openFlg=false)
 多角形追加関数1 [詳細]
 
fk_LooppushPolygon (int num, fk_Vector *array, bool openFlg=false)
 多角形追加関数2 [詳細]
 
void pushPolygonVertex (fk_Vector pos, bool openFlg)
 多角形頂点追加関数 [詳細]
 
void makePoint (std::vector< fk_Vector > *array)
 頂点群生成関数1 [詳細]
 
void makePoint (int num, fk_Vector *array)
 頂点群生成関数2 [詳細]
 
fk_VertexpushPointVertex (fk_Vector pos)
 頂点追加関数 [詳細]
 
void makeLines (std::vector< fk_Vector > *array)
 線分群生成関数1 [詳細]
 
void makeLines (int num, fk_Vector *array)
 線分群生成関数2 [詳細]
 
fk_EdgepushLines (fk_Vector pos1, fk_Vector pos2)
 線分追加関数 [詳細]
 
bool setLinePos (int ID, fk_Vector pos)
 線分頂点移動関数1 [詳細]
 
bool setLinePos (int edgeID, int vertexID, fk_Vector pos)
 線分頂点移動関数2 [詳細]
 
bool changeLine (int edgeID, fk_Vector pos1, fk_Vector pos2)
 線分両端点移動関数 [詳細]
 
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)
 正多角錐(円錐)高さ設定関数 [詳細]
 
bool moveVPosition (int vertexID, fk_Vector pos, int order=0)
 頂点移動関数1 [詳細]
 
bool moveVPosition (int vertexID, double x, double y, double z, int order=0)
 頂点移動関数2 [詳細]
 
bool moveVPosition (int vertexID, double *array, int order=0)
 頂点移動関数2 [詳細]
 
- Public メソッド inherited from fk_Operation
 fk_Operation (fk_DataBase *=(fk_DataBase *) NULL)
 コンストラクタ [詳細]
 
virtual ~fk_Operation ()
 デストラクタ [詳細]
 
fk_VertexmakeVertex (const fk_Vector P)
 頂点生成関数 [詳細]
 
bool deleteVertex (fk_Vertex *V)
 頂点削除関数 [詳細]
 
bool moveVertex (fk_Vertex *V, fk_Vector P)
 頂点移動関数 [詳細]
 
fk_EdgemakeEdge (fk_Vertex *V_1, fk_Vertex *V_2, fk_Half *H_11=(fk_Half *) NULL, fk_Half *H_12=(fk_Half *) NULL, fk_Half *H_21=(fk_Half *) NULL, fk_Half *H_22=(fk_Half *) NULL)
 稜線生成関数 [詳細]
 
bool deleteEdge (fk_Edge *E)
 稜線削除関数 [詳細]
 
fk_LoopmakeLoop (fk_Half *H)
 ループ生成関数 [詳細]
 
bool deleteLoop (fk_Loop *L)
 ループ削除関数 [詳細]
 
fk_EdgeseparateLoop (fk_Half *H1, fk_Half *H2)
 ループ分割関数 [詳細]
 
bool uniteLoop (fk_Edge *E)
 ループ結合関数 [詳細]
 
fk_VertexseparateEdge (fk_Edge *E)
 稜線分離関数 [詳細]
 
bool uniteEdge (fk_Vertex *V)
 稜線結合関数 [詳細]
 
void negateBody (void)
 形状反転関数 [詳細]
 
void setHistoryMode (bool mode)
 履歴保存モード設定関数 [詳細]
 
bool getHistoryMode (void)
 履歴保存モード参照関数 [詳細]
 
void setHistoryMark (void)
 履歴マーク設定関数 [詳細]
 
bool undoHistory (void)
 UNDO 操作実行関数 [詳細]
 
bool redoHistory (void)
 REDO 操作実行関数 [詳細]
 
void setTesselateMode (bool mode)
 形状全体テセレーション設定関数 [詳細]
 
bool getTesselateMode (void)
 形状全体テセレーション状態参照関数 [詳細]
 
- Public メソッド inherited from fk_MassProperty
 fk_MassProperty (void)
 
- Public メソッド inherited from fk_DataAccess
 fk_DataAccess (void)
 コンストラクタ [詳細]
 
virtual ~fk_DataAccess ()
 デストラクタ [詳細]
 
bool checkDB (void) const
 データベース設定チェック関数 [詳細]
 
bool checkTopology (void)
 位相状況チェック関数 [詳細]
 
void printTopology (void)
 位相状況出力関数 [詳細]
 
bool existVertex (fk_Vertex *vertex) const
 頂点位相要素存在判定関数1 [詳細]
 
bool existVertex (int ID) const
 頂点位相要素存在判定関数2 [詳細]
 
bool existHalf (fk_Half *half) const
 半稜線位相要素存在判定関数1 [詳細]
 
bool existHalf (int ID) const
 半稜線位相要素存在判定関数2 [詳細]
 
bool existEdge (fk_Edge *edge) const
 稜線位相要素存在判定関数1 [詳細]
 
bool existEdge (int ID) const
 稜線位相要素存在判定関数2 [詳細]
 
bool existLoop (fk_Loop *loop) const
 ループ位相要素存在判定関数1 [詳細]
 
bool existLoop (int ID) const
 ループ位相要素存在判定関数2 [詳細]
 
fk_VertexgetVData (int ID) const
 頂点位相要素参照関数 [詳細]
 
fk_HalfgetHData (int ID) const
 半稜線位相要素参照関数 [詳細]
 
fk_EdgegetEData (int ID) const
 稜線位相要素参照関数 [詳細]
 
fk_LoopgetLData (int ID) const
 ループ位相要素参照関数 [詳細]
 
fk_VertexgetNextV (fk_Vertex *vertex) const
 頂点位相要素逐次参照関数 [詳細]
 
fk_HalfgetNextH (fk_Half *half) const
 半稜線位相要素逐次参照関数 [詳細]
 
fk_EdgegetNextE (fk_Edge *edge) const
 稜線位相要素逐次参照関数 [詳細]
 
fk_LoopgetNextL (fk_Loop *loop) const
 ループ位相要素逐次参照関数 [詳細]
 
fk_VertexgetLastV (void) const
 頂点位相最終要素参照関数 [詳細]
 
fk_HalfgetLastH (void) const
 半稜線位相最終要素参照関数 [詳細]
 
fk_EdgegetLastE (void) const
 稜線位相最終要素参照関数 [詳細]
 
fk_LoopgetLastL (void) const
 ループ位相最終要素参照関数 [詳細]
 
int getVNum (void) const
 頂点数参照関数 [詳細]
 
int getHNum (void) const
 半稜線数参照関数 [詳細]
 
int getENum (void) const
 稜線数参照関数 [詳細]
 
int getLNum (void) const
 ループ数参照関数 [詳細]
 
- Public メソッド inherited from fk_ReferenceL3
std::vector< fk_Vertex * > getAllNeighborVOnV (fk_Vertex *V) const
 全隣接頂点参照関数 [詳細]
 
std::vector< fk_Edge * > getEOnVV (fk_Vertex *V1, fk_Vertex *V2) const
 頂点間稜線参照関数 [詳細]
 
fk_LoopgetOneLOnV (fk_Vertex *V) const
 頂点接続ループ参照関数 [詳細]
 
fk_LoopgetNeighborLOnLE (fk_Loop *L, fk_Edge *E) const
 稜線条件付き隣接ループ参照関数 [詳細]
 
std::vector< fk_Loop * > getAllNeighborLOnL (fk_Loop *L) const
 全隣接ループ参照関数 [詳細]
 
- Public メソッド inherited from fk_ReferenceL2
fk_VertexgetOneNeighborVOnV (fk_Vertex *V) const
 隣接頂点参照関数 [詳細]
 
std::vector< fk_Half * > getAllHOnV (fk_Vertex *V) const
 頂点接続全半稜線参照関数 [詳細]
 
std::vector< fk_Edge * > getAllEOnV (fk_Vertex *V) const
 頂点接続全稜線参照関数 [詳細]
 
std::vector< fk_Loop * > getAllLOnV (fk_Vertex *V) const
 頂点接続全ループ参照関数 [詳細]
 
int getENumOnV (fk_Vertex *V) const
 頂点接続稜線数参照関数 [詳細]
 
std::vector< fk_Vertex * > getAllVOnL (fk_Loop *L) const
 ループ所属全頂点参照関数 [詳細]
 
std::vector< fk_Half * > getAllHOnL (fk_Loop *L) const
 ループ所属全半稜線参照関数 [詳細]
 
std::vector< fk_Edge * > getAllEOnL (fk_Loop *L) const
 ループ所属全稜線参照関数 [詳細]
 
fk_LoopgetOneNeighborLOnL (fk_Loop *L) const
 隣接ループ参照関数 [詳細]
 
fk_LoopgetNeighborLOnLH (fk_Loop *L, fk_Half *H) const
 半稜線条件付き隣接ループ参照関数 [詳細]
 
int getVNumOnL (fk_Loop *L) const
 ループ上頂点数参照関数 [詳細]
 
- Public メソッド inherited from fk_ReferenceL1
fk_HalfgetOneHOnV (fk_Vertex *V) const
 頂点接続半稜線参照関数 [詳細]
 
fk_EdgegetOneEOnV (fk_Vertex *V) const
 頂点接続稜線参照関数 [詳細]
 
fk_VertexgetVOnH (fk_Half *H) const
 半稜線接続頂点参照関数 [詳細]
 
fk_HalfgetMateHOnH (fk_Half *H) const
 対半稜線参照関数 [詳細]
 
fk_EdgegetParentEOnH (fk_Half *H) const
 親稜線参照関数 [詳細]
 
fk_LoopgetParentLOnH (fk_Half *H) const
 親ループ参照関数 [詳細]
 
fk_VertexgetRightVOnE (fk_Edge *E) const
 右側頂点参照関数 [詳細]
 
fk_VertexgetLeftVOnE (fk_Edge *E) const
 左側頂点参照関数 [詳細]
 
fk_HalfgetRightHOnE (fk_Edge *E) const
 右側半稜線参照関数 [詳細]
 
fk_HalfgetLeftHOnE (fk_Edge *E) const
 左側半稜線参照関数 [詳細]
 
fk_LoopgetRightLOnE (fk_Edge *E) const
 右側ループ参照関数 [詳細]
 
fk_LoopgetLeftLOnE (fk_Edge *E) const
 左側ループ参照関数 [詳細]
 
fk_EdgeStatus getEdgeStatus (fk_Edge *E) const
 稜線位相状態参照関数 [詳細]
 
fk_VertexgetOneVOnL (fk_Loop *L) const
 ループ所属頂点参照関数 [詳細]
 
fk_HalfgetOneHOnL (fk_Loop *L) const
 ループ所属半稜線参照関数 [詳細]
 
fk_EdgegetOneEOnL (fk_Loop *L) const
 ループ所属稜線参照関数 [詳細]
 
- Public メソッド inherited from fk_Shape
 fk_Shape (fk_ObjectType=FK_SHAPE)
 コンストラクタ [詳細]
 
virtual ~fk_Shape ()
 デストラクタ [詳細]
 
fk_PalettegetPaletteData (void)
 パレット取得関数 [詳細]
 
void clearMaterial (void)
 パレット初期化関数 [詳細]
 
void setObjMaterialID (int ID)
 オブジェクトマテリアル ID 設定関数 [詳細]
 
void pushPalette (fk_Material &mat)
 マテリアル追加関数 [詳細]
 
void setPalette (fk_Material &mat, int ID)
 マテリアル設定関数 [詳細]
 
void setMaterialMode (fk_MaterialMode mode)
 マテリアルモード設定関数 [詳細]
 
fk_MaterialMode getMaterialMode (void)
 マテリアルモード取得関数 [詳細]
 
int getObjMaterialID (void)
 オブジェクトマテリアル ID 取得関数 [詳細]
 
int getPaletteSize (void)
 パレット中のマテリアル格納数取得関数 [詳細]
 
fk_MaterialgetMaterial (int id)
 マテリアル取得関数 [詳細]
 
std::vector< fk_Material > * getMaterialVector (void)
 マテリアル配列取得関数 [詳細]
 
- Public メソッド inherited from fk_Attribute
 fk_Attribute (void)
 コンストラクタ [詳細]
 
virtual ~fk_Attribute ()
 デストラクタ [詳細]
 
bool setAttrII (const int key, const int value)
 キーが int 型、値が int 型である属性設定関数 [詳細]
 
bool setAttrID (const int key, const double value)
 キーが int 型、値が double 型である属性設定関数 [詳細]
 
bool setAttrIS (const int key, const std::string value)
 キーが int 型、値が string 型である属性設定関数 [詳細]
 
bool setAttrSI (const std::string key, const int value)
 キーが string 型、値が int 型である属性設定関数 [詳細]
 
bool setAttrSD (const std::string key, const double value)
 キーが string 型、値が double 型である属性設定関数 [詳細]
 
bool setAttrSS (const std::string key, const std::string value)
 キーが string 型、値が string 型である属性設定関数 [詳細]
 
int getAttrII (const int key) const
 キーが int 型、値が int 型である属性参照関数 [詳細]
 
double getAttrID (const int key) const
 キーが int 型、値が double 型である属性参照関数 [詳細]
 
std::string getAttrIS (const int key) const
 キーが int 型、値が string 型である属性参照関数 [詳細]
 
int getAttrSI (const std::string key) const
 キーが string 型、値が int 型である属性参照関数 [詳細]
 
double getAttrSD (const std::string key) const
 キーが string 型、値が double 型である属性参照関数 [詳細]
 
std::string getAttrSS (const std::string key) const
 キーが string 型、値が string 型である属性参照関数 [詳細]
 
bool existAttrII (const int key) const
 キーが int 型、値が int 型である属性存在参照関数 [詳細]
 
bool existAttrID (const int key) const
 キーが int 型、値が double 型である属性存在参照関数 [詳細]
 
bool existAttrIS (const int key) const
 キーが int 型、値が string 型である属性存在参照関数 [詳細]
 
bool existAttrSI (const std::string key) const
 キーが string 型、値が int 型である属性存在参照関数 [詳細]
 
bool existAttrSD (const std::string key) const
 キーが string 型、値が double 型である属性存在参照関数 [詳細]
 
bool existAttrSS (const std::string key) const
 キーが string 型、値が string 型である属性存在参照関数 [詳細]
 
bool deleteAttrII (const int key)
 キーが int 型、値が int 型である属性消去関数 [詳細]
 
bool deleteAttrID (const int key)
 キーが int 型、値が double 型である属性消去関数 [詳細]
 
bool deleteAttrIS (const int key)
 キーが int 型、値が string 型である属性消去関数 [詳細]
 
bool deleteAttrSI (const std::string key)
 キーが string 型、値が int 型である属性消去関数 [詳細]
 
bool deleteAttrSD (const std::string key)
 キーが string 型、値が double 型である属性消去関数 [詳細]
 
bool deleteAttrSS (const std::string key)
 キーが string 型、値が string 型である属性消去関数 [詳細]
 
- Public メソッド inherited from fk_BaseObject
 fk_BaseObject (fk_ObjectType type=FK_BASEOBJECT)
 コンストラクタ [詳細]
 
fk_ObjectType getObjectType (void) const
 タイプ取得関数 [詳細]
 

説明

半稜線構造 (Half-Edge Structure) による任意形状を生成、管理するクラス

このクラスは、半稜線構造 (Half-Edge Structure) による任意形状を制御する機能を提供します。

fk_Solid は様々な機能を持つ形状制御用クラスです。 fk_Solid 型のインスタンスが利用を想定している機能は、 実際には多くの基底クラスにて定義されています。 fk_Solid で直接定義されている関数は、 ほとんどが様々な3次元形状用ファイルフォーマットに対応した入出力機能となります。 その他、以下のようなような機能はそれぞれのクラスのマニュアルを参照して下さい。

3次元形状データファイルの入出力については、以下の形式をサポートしています。

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

参照
fk_IndexFaceSet, fk_Shape, fk_Model, fk_ReferenceL1, fk_ReferenceL2, fk_ReferenceL3, fk_DataAccess, fk_Operation, fk_Modify, fk_SolidBase, fk_Shape, fk_Attribute

コンストラクタとデストラクタ

fk_Solid::fk_Solid ( void  )

コンストラクタ

virtual fk_Solid::~fk_Solid ( )
virtual

デストラクタ

関数

void fk_Solid::allClear ( bool  matFlg = true)

形状初期化関数

インスタンスに設定されている形状と独自属性を全て消去し、 データの初期化を行います。

引数
[in]matFlgtrue の場合、インスタンス中に設定されていたマテリアルに関する情報も 合わせて消去します。false の場合、マテリアル情報は存続させます。
bool fk_Solid::isEmpty ( void  )

空形状状態参照関数

形状情報が空かどうかを参照します。

戻り値
形状情報が空の場合 true を、そうでない場合は false を返します。
void fk_Solid::cloneShape ( fk_Solid solid)

形状コピー関数

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

引数
[in]solid複写元インスタンス
bool fk_Solid::compareShape ( fk_Solid solid)

形状同値比較関数

引数として与えられたインスタンス中の形状と、同じ状態かどうかを比較します。 ここでいう「同じ」とは、全ての位相要素の ID も一致している状態を指します。 幾何的には同一であるが位相要素の ID が異なるケースでは「同じ」とは判断しません。

引数
[in]solid比較インスタンス
戻り値
同じであれば true を、異なれば false を返します。
bool fk_Solid::readSMFFile ( std::string  fileName)

SMFファイル入力関数

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

引数
[in]fileNameファイル名
戻り値
成功すれば true を、失敗すれば false を返します。
bool fk_Solid::readSRFFile ( std::string  fileName)

SRFファイル入力関数

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

引数
[in]fileNameファイル名
戻り値
成功すれば true を、失敗すれば false を返します。
bool fk_Solid::readVRMLFile ( std::string  fileName,
bool  materialFlg = true,
bool  solidFlg = true 
)

VRML ファイル入力関数

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

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

STL ファイル入力関数

STL形式のファイルからデータを入力します。 対応しているのは面データのみです。

引数
[in]fileNameファイル名
[in]solidFlgtrue の場合、位相の隣接関係を最適化します。 ただし、結果として入力に失敗する場合があります。 false の場合は隣接関係を最適化せず、 すべての面が独立した状態として形状を構築します。
[in]tolerancesolidFlg で true を指定した場合、 頂点同士が同一かどうかを判断するための距離許容誤差を指定します。 solidFlg が false であった場合、この値は無視されます。
戻り値
成功すれば true を、失敗すれば false を返します。
bool fk_Solid::readHRCFile ( std::string  fileName)

HRCファイル入力関数

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

引数
[in]fileNameファイル名
戻り値
成功すれば true を、失敗すれば false を返します。
bool fk_Solid::readRDSFile ( std::string  fileName,
bool  solidFlg = true 
)

RDSファイル入力関数

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

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

DXFファイル入力関数

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

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

MQOファイル入力関数1.

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

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

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

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

MQOファイル入力関数2.

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 の場合、VRMLファイル中で設定されているマテリアル情報を入力します。 false の場合は、マテリアル情報を無視します。
戻り値
成功すれば true を、失敗すれば false を返します。
bool fk_Solid::readD3DXFile ( std::string  fileName,
std::string  objName,
bool  solidFlg = true 
)

DirectX (D3DX) ファイル入力関数1.

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

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

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

DirectX (D3DX) ファイル入力関数2.

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

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

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

独自形式ファイル入力関数

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

引数
[in]fileNameファイル名
[in]sizeMode旧バージョンとの互換性のために存在する引数です。 通常は true とするか、省略して下さい。
戻り値
成功すれば true を、失敗すれば false を返します。
bool fk_Solid::readData ( FILE *  fp,
fk_DataFormatMode  mode = FK_BINARY_FILE,
bool  sizeMode = true 
)

独自形式ファイルストリーム入力関数

独自形式のファイルにおいて、FILE 型ストリームからデータを入力します。

引数
[in]fpFILE型ストリームポインタ
[in]modeフォーマットモード
[in]sizeMode旧バージョンとの互換性のために存在する引数です。 通常は true とするか、省略して下さい。
戻り値
成功すれば true を、失敗すれば false を返します。
bool fk_Solid::writeVRMLFile ( std::string  fileName,
fk_Material material = NULL,
bool  triFlg = false 
)

VRML ファイル出力関数1.

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

引数
[in]fileNameファイル名
[in]materialVRMLファイル中に「Material」ノードとしてマテリアル情報を保存します。 NULL を代入した場合は、VRMLファイル中に「Material」ノードを生成しません。
[in]triFlg仮想関数からの継承のために存在する引数で、処理には一切影響しません。
戻り値
ファイルの出力に成功した場合 true を、失敗した場合 false を返します。
bool fk_Solid::writeVRMLFile ( std::string  fileName,
std::vector< double > *  time,
std::vector< fk_Vector > *  pos,
fk_Material material = NULL,
bool  triFlg = false 
)

VRML ファイル出力関数2.

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

引数
[in]fileNameファイル名
[in]timeCoordinateInterpolator における時間配列 (key) を入力します。
[in]posCoordinateInterpolator における位置ベクトル配列 (keyValue) を入力します。
[in]materialVRMLファイル中に「Material」ノードとしてマテリアル情報を保存します。 NULL を代入した場合は、VRMLファイル中に「Material」ノードを生成しません。
[in]triFlg仮想関数からの継承のために存在する引数で、処理には一切影響しません。
戻り値
ファイルの出力に成功した場合 true を、失敗した場合 false を返します。
bool fk_Solid::writeSTLFile ( std::string  fileName)

STL ファイル出力関数

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

引数
[in]fileNameファイル名
戻り値
ファイルの出力に成功した場合 true を、失敗した場合 false を返します。
bool fk_Solid::writeDXFFile ( std::string  fileName,
bool  triFlg = false 
)

DXF ファイル出力関数

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

引数
[in]fileNameファイル名
[in]triFlg面情報を3角形として出力したい場合は、true を代入します。 false の場合、3角形面を2点が重複している4角形面として出力します。
戻り値
ファイルの出力に成功した場合 true を、失敗した場合 false を返します。
bool fk_Solid::writeMQOFile ( std::string  fileName)

MQO ファイル出力関数

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

引数
[in]fileNameファイル名
戻り値
ファイルの出力に成功した場合 true を、失敗した場合 false を返します。
bool fk_Solid::writeData ( std::string  fileName,
fk_DataFormatMode  mode = FK_BINARY_FILE 
)

独自形式ファイル出力関数

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

引数
[in]fileNameファイル名
[in]modeフォーマットモード
戻り値
成功すれば true を、失敗すれば false を返します。
bool fk_Solid::writeData ( FILE *  fp,
fk_DataFormatMode  mode = FK_BINARY_FILE 
)

独自形式ファイルストリーム出力関数

独自形式のファイルにおいて、FILE 型ストリームによってデータを出力します。

引数
[in]fpFILE型ストリームポインタ
[in]modeフォーマットモード
戻り値
成功すれば true を、失敗すれば false を返します。