FineKernelToolKit 2.9.0

- メインページ
- ネームスペース
- クラス
- ファイル

- ファイル一覧
- ファイルメンバ

全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 フレンド マクロ定義 ページ
Solid.h
説明を見る。
1 /****************************************************************************
2 *
3 * Copyright (c) 1999-2014, Fine Kernel Project, All rights reserved.
4 *
5 * Redistribution and use in source and binary forms,
6 * with or without modification, are permitted provided that the
7 * following conditions are met:
8 *
9 * - Redistributions of source code must retain the above
10 * copyright notice, this list of conditions and the
11 * following disclaimer.
12 *
13 * - Redistributions in binary form must reproduce the above
14 * copyright notice, this list of conditions and the
15 * following disclaimer in the documentation and/or
16 * other materials provided with the distribution.
17 *
18 * - Neither the name of the copyright holders nor the names
19 * of its contributors may be used to endorse or promote
20 * products derived from this software without specific
21 * prior written permission.
22 *
23 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
26 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
27 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
28 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
29 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
32 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
33 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34 * POSSIBILITY OF SUCH DAMAGE.
35 *
36 ****************************************************************************/
37 /****************************************************************************
38 *
39 * Copyright (c) 1999-2014, Fine Kernel Project, All rights reserved.
40 *
41 * 本ソフトウェアおよびソースコードのライセンスは、基本的に
42 * 「修正 BSD ライセンス」に従います。以下にその詳細を記します。
43 *
44 * ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
45 * 以下の条件を満たす場合に限り、再頒布および使用が許可されます。
46 *
47 * - ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、
48 * および下記免責条項を含めること。
49 *
50 * - バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の
51 * 資料に、上記の著作権表示、本条件一覧、および下記免責条項を
52 * 含めること。
53 *
54 * - 書面による特別の許可なしに、本ソフトウェアから派生した製品の
55 * 宣伝または販売促進に、本ソフトウェアの著作権者の名前または
56 * コントリビューターの名前を使用してはならない。
57 *
58 * 本ソフトウェアは、著作権者およびコントリビューターによって「現
59 * 状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、
60 * および特定の目的に対する適合性に関す暗黙の保証も含め、またそれ
61 * に限定されない、いかなる保証もないものとします。著作権者もコン
62 * トリビューターも、事由のいかんを問わず、損害発生の原因いかんを
63 * 問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その
64 * 他の)不法行為であるかを問わず、仮にそのような損害が発生する可
65 * 能性を知らされていたとしても、本ソフトウェアの使用によって発生
66 * した(代替品または代用サービスの調達、使用の喪失、データの喪失、
67 * 利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、
68 * 間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害に
69 * ついて、一切責任を負わないものとします。
70 *
71 ****************************************************************************/
72 #ifndef __FK_SOLID_HEADER__
73 #define __FK_SOLID_HEADER__
74
75 #include <FK/SolidBase.h>
76 #include <FK/FileBase.h>
77
78 class fk_DataBase;
79
81
137 class fk_Solid : public fk_SolidBase {
138 private:
139
140 fk_DataBase *SolidDB;
141 fk_Palette localPal;
142
143 public:
144
146 fk_Solid(void);
147
149 virtual ~fk_Solid();
150
152
160 void allClear(bool matFlg = true);
161
163
168 bool isEmpty(void);
169
171
177 void cloneShape(fk_Solid *solid);
178
180
189 bool compareShape(fk_Solid *solid);
190
192
193
201 bool readSMFFile(std::string fileName);
202
204
211 bool readSRFFile(std::string fileName);
212
214
241 bool readVRMLFile(std::string fileName,
242 bool materialFlg = true,
243 bool solidFlg = true);
244
246
262 bool readSTLFile(std::string fileName,
263 bool solidFlg = true,
264 double tolerance = 1.0e-08);
265
267
274 bool readHRCFile(std::string fileName);
275
277
289 bool readRDSFile(std::string fileName,
290 bool solidFlg = true);
291
293
305 bool readDXFFile(std::string fileName,
306 bool solidFlg = true);
307
309
342 bool readMQOFile(std::string fileName,
343 std::string objName,
344 bool solidFlg = true,
345 bool contFlg = true,
346 bool materialFlg = false);
347
348
350
388 bool readMQOFile(std::string fileName,
389 std::string objName,
390 int materialID,
391 bool solidFlg = true,
392 bool contFlg = true,
393 bool materialFlg = false);
394
396
422 bool readD3DXFile(std::string fileName,
423 std::string objName,
424 bool solidFlg = true);
425
427
458 bool readD3DXFile(std::string fileName,
459 std::string objName,
460 int materialID,
461 bool solidFlg = true);
462
464
474 bool readData(std::string fileName,
475 bool sizeMode = true);
476
478
489 bool readData(FILE *fp,
490 fk_DataFormatMode mode = FK_BINARY_FILE,
491 bool sizeMode = true);
492
494
496
497
510 bool writeVRMLFile(std::string fileName,
511 fk_Material *material = NULL,
512 bool triFlg = false);
513
515
534 bool writeVRMLFile(std::string fileName,
535 std::vector<double> *time,
536 std::vector<fk_Vector> *pos,
537 fk_Material *material = NULL,
538 bool triFlg = false);
539
541
548 bool writeSTLFile(std::string fileName);
549
551
561 bool writeDXFFile(std::string fileName,
562 bool triFlg = false);
563
565
572 bool writeMQOFile(std::string fileName);
573
575
583 bool writeData(std::string fileName,
584 fk_DataFormatMode mode = FK_BINARY_FILE);
585
587
595 bool writeData(FILE *fp,
596 fk_DataFormatMode mode = FK_BINARY_FILE);
598
599 #ifndef FK_DOXYGEN_USER_PROCESS
600 bool AllCheck(void);
601 void PrintMat(std::string = "");
602 #endif
603
604 };
605
606 #endif // !__FK_SOLID_HEADER__
SolidBase.h
FileBase.h
fk_Solid::readVRMLFile
bool readVRMLFile(std::string fileName, bool materialFlg=true, bool solidFlg=true)
VRML ファイル入力関数
fk_Palette
マテリアルパレットを管理するクラス
Definition: Palette.h:95
fk_Solid::fk_Solid
fk_Solid(void)
コンストラクタ
fk_Solid::readData
bool readData(std::string fileName, bool sizeMode=true)
独自形式ファイル入力関数
fk_Solid::readSTLFile
bool readSTLFile(std::string fileName, bool solidFlg=true, double tolerance=1.0e-08)
STL ファイル入力関数
fk_SolidBase
ソリッドモデル形状変換クラス
Definition: SolidBase.h:99
fk_Solid::allClear
void allClear(bool matFlg=true)
形状初期化関数
fk_Solid::writeVRMLFile
bool writeVRMLFile(std::string fileName, fk_Material *material=NULL, bool triFlg=false)
VRML ファイル出力関数1.
FK_BINARY_FILE
バイナリ形式
Definition: FileBase.h:78
fk_Solid::compareShape
bool compareShape(fk_Solid *solid)
形状同値比較関数
fk_Solid::readMQOFile
bool readMQOFile(std::string fileName, std::string objName, bool solidFlg=true, bool contFlg=true, bool materialFlg=false)
MQOファイル入力関数1.
fk_Solid::readSMFFile
bool readSMFFile(std::string fileName)
SMFファイル入力関数
fk_Solid::readSRFFile
bool readSRFFile(std::string fileName)
SRFファイル入力関数
fk_Solid::writeData
bool writeData(std::string fileName, fk_DataFormatMode mode=FK_BINARY_FILE)
独自形式ファイル出力関数
fk_Solid::writeSTLFile
bool writeSTLFile(std::string fileName)
STL ファイル出力関数
fk_Solid::~fk_Solid
virtual ~fk_Solid()
デストラクタ
fk_DataFormatMode
fk_DataFormatMode
独自ファイル形式のフォーマットを表す列挙型
Definition: FileBase.h:76
fk_Solid::cloneShape
void cloneShape(fk_Solid *solid)
形状コピー関数
fk_Solid
半稜線構造 (Half-Edge Structure) による任意形状を生成、管理するクラス
Definition: Solid.h:137
fk_Material
マテリアル(質感)を管理するクラス
Definition: Material.h:311
fk_Solid::writeDXFFile
bool writeDXFFile(std::string fileName, bool triFlg=false)
DXF ファイル出力関数
fk_Solid::readDXFFile
bool readDXFFile(std::string fileName, bool solidFlg=true)
DXFファイル入力関数
fk_Solid::isEmpty
bool isEmpty(void)
空形状状態参照関数
fk_Solid::readRDSFile
bool readRDSFile(std::string fileName, bool solidFlg=true)
RDSファイル入力関数
fk_Solid::readHRCFile
bool readHRCFile(std::string fileName)
HRCファイル入力関数
fk_Solid::readD3DXFile
bool readD3DXFile(std::string fileName, std::string objName, bool solidFlg=true)
DirectX (D3DX) ファイル入力関数1.
fk_Solid::writeMQOFile
bool writeMQOFile(std::string fileName)
MQO ファイル出力関数