FineKernelToolKit 2.9.0

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

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

全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 フレンド マクロ定義 ページ
DataAccess.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_DATA_ACCESS_HEADER__
73 #define __FK_DATA_ACCESS_HEADER__
74
75 #include <FK/Reference.h>
76
77 class fk_DataBase;
78
80
87 class fk_DataAccess : public fk_ReferenceL3 {
88
89 friend class fk_Solid;
90
91 private:
92 fk_DataBase *ope_DB;
93
94 protected:
95
96 #ifndef FK_DOXYGEN_USER_PROCESS
97
98 fk_DataBase * GetDB(void);
99 void SetDataBase(fk_DataBase *);
100
101 fk_Vertex * GetNewVertexObj_(void);
102 fk_Vertex * GetNewVertexObj_(int);
103 fk_Half * GetNewHalfObj_(void);
104 fk_Half * GetNewHalfObj_(int);
105 fk_Edge * GetNewEdgeObj_(void);
106 fk_Edge * GetNewEdgeObj_(int);
107 fk_Loop * GetNewLoopObj_(void);
108 fk_Loop * GetNewLoopObj_(int);
109
110 bool DeleteVertexObj_(fk_Vertex *);
111 bool DeleteHalfObj_(fk_Half *);
112 bool DeleteEdgeObj_(fk_Edge *);
113 bool DeleteLoopObj_(fk_Loop *);
114
115 void AllDBClear_(void);
116
117 #endif
118
119 public:
121 fk_DataAccess(void);
122
124 virtual ~fk_DataAccess();
125
127
133 bool checkDB(void) const;
134
136
141 bool checkTopology(void);
142
144
148 void printTopology(void);
149
151
152
154
161 bool existVertex(fk_Vertex *vertex) const;
162
164
171 bool existVertex(int ID) const;
172
174
181 bool existHalf(fk_Half *half) const;
182
184
191 bool existHalf(int ID) const;
192
194
201 bool existEdge(fk_Edge *edge) const;
202
204
211 bool existEdge(int ID) const;
212
214
221 bool existLoop(fk_Loop *loop) const;
222
224
231 bool existLoop(int ID) const;
233
235
236
238
246 fk_Vertex * getVData(int ID) const;
247
249
257 fk_Half * getHData(int ID) const;
258
260
268 fk_Edge * getEData(int ID) const;
269
271
279 fk_Loop * getLData(int ID) const;
280
282
298 fk_Vertex * getNextV(fk_Vertex *vertex) const;
299
301
317 fk_Half * getNextH(fk_Half *half) const;
318
320
336 fk_Edge * getNextE(fk_Edge *edge) const;
337
339
355 fk_Loop * getNextL(fk_Loop *loop) const;
356
358
366 fk_Vertex * getLastV(void) const;
367
369
377 fk_Half * getLastH(void) const;
378
380
388 fk_Edge * getLastE(void) const;
389
391
399 fk_Loop * getLastL(void) const;
401
403
404
410 int getVNum(void) const;
411
413
419 int getHNum(void) const;
420
422
427 int getENum(void) const;
428
430
435 int getLNum(void) const;
437 };
438
439
440 #endif // !__FK_DATA_ACCESS_HEADER__
fk_DataAccess::getLastE
fk_Edge * getLastE(void) const
稜線位相最終要素参照関数
fk_DataAccess::existLoop
bool existLoop(fk_Loop *loop) const
ループ位相要素存在判定関数1
fk_DataAccess::getNextH
fk_Half * getNextH(fk_Half *half) const
半稜線位相要素逐次参照関数
fk_DataAccess::checkDB
bool checkDB(void) const
データベース設定チェック関数
fk_DataAccess::getLData
fk_Loop * getLData(int ID) const
ループ位相要素参照関数
fk_DataAccess::getVData
fk_Vertex * getVData(int ID) const
頂点位相要素参照関数
fk_DataAccess::existEdge
bool existEdge(fk_Edge *edge) const
稜線位相要素存在判定関数1
Reference.h
fk_DataAccess::getHNum
int getHNum(void) const
半稜線数参照関数
fk_DataAccess::~fk_DataAccess
virtual ~fk_DataAccess()
デストラクタ
fk_Loop
ソリッドモデルのループ位相を管理するクラス
Definition: Loop.h:114
fk_DataAccess::getHData
fk_Half * getHData(int ID) const
半稜線位相要素参照関数
fk_DataAccess::getENum
int getENum(void) const
稜線数参照関数
fk_DataAccess::getLastV
fk_Vertex * getLastV(void) const
頂点位相最終要素参照関数
fk_DataAccess::existHalf
bool existHalf(fk_Half *half) const
半稜線位相要素存在判定関数1
fk_ReferenceL3
位相状態参照用クラス(Level3)
Definition: Reference.h:502
fk_Vertex
ソリッドモデルの頂点位相を管理するクラス
Definition: Vertex.h:95
fk_DataAccess::getEData
fk_Edge * getEData(int ID) const
稜線位相要素参照関数
fk_Solid
半稜線構造 (Half-Edge Structure) による任意形状を生成、管理するクラス
Definition: Solid.h:137
fk_DataAccess::getVNum
int getVNum(void) const
頂点数参照関数
fk_DataAccess
ソリッドモデル用位相要素アクセスクラス
Definition: DataAccess.h:87
fk_DataAccess::getNextE
fk_Edge * getNextE(fk_Edge *edge) const
稜線位相要素逐次参照関数
fk_DataAccess::getNextV
fk_Vertex * getNextV(fk_Vertex *vertex) const
頂点位相要素逐次参照関数
fk_DataAccess::checkTopology
bool checkTopology(void)
位相状況チェック関数
fk_DataAccess::existVertex
bool existVertex(fk_Vertex *vertex) const
頂点位相要素存在判定関数1
fk_DataAccess::fk_DataAccess
fk_DataAccess(void)
コンストラクタ
fk_DataAccess::getLastH
fk_Half * getLastH(void) const
半稜線位相最終要素参照関数
fk_Half
ソリッドモデルの半稜線位相を管理するクラス
Definition: Half.h:94
fk_Edge
ソリッドモデルの稜線位相を管理するクラス
Definition: Edge.h:110
fk_DataAccess::getLastL
fk_Loop * getLastL(void) const
ループ位相最終要素参照関数
fk_DataAccess::printTopology
void printTopology(void)
位相状況出力関数
fk_DataAccess::getLNum
int getLNum(void) const
ループ数参照関数
fk_DataAccess::getNextL
fk_Loop * getNextL(fk_Loop *loop) const
ループ位相要素逐次参照関数