FineKernelToolKit 4.2.13
読み取り中…
検索中…
一致する文字列を見つけられません
DataAccess.h
[詳解]
1#if !defined(__FK_DATA_ACCESS_HEADER__)
2#define __FK_DATA_ACCESS_HEADER__
3
4#include <FK/ParserData.h>
5#include <FK/DataBase.hh>
6#include <list>
7
8namespace FK {
9 class fk_DataBase;
10
12
20
21 friend class fk_Solid;
22
23 public:
26
28 virtual ~fk_DataAccess();
29
31
37 bool checkDB(void) const;
38
40
45 bool checkTopology(void);
46
48
52 void printTopology(void);
53
56
58
65 bool existVertex(fk_Vertex *vertex) const;
66
68
75 bool existVertex(int ID) const;
76
78
85 bool existHalf(fk_Half *half) const;
86
88
95 bool existHalf(int ID) const;
96
98
105 bool existEdge(fk_Edge *edge) const;
106
108
115 bool existEdge(int ID) const;
116
118
125 bool existLoop(fk_Loop *loop) const;
126
128
135 bool existLoop(int ID) const;
137
140
142
151 fk_Vertex * getVData(int ID) const;
152
154
163 fk_Half * getHData(int ID) const;
164
166
175 fk_Edge * getEData(int ID) const;
176
178
187 fk_Loop * getLData(int ID) const;
188
190
207 fk_Vertex * getNextV(fk_Vertex *vertex) const;
208
210
227 fk_Half * getNextH(fk_Half *half) const;
228
230
247 fk_Edge * getNextE(fk_Edge *edge) const;
248
250
267 fk_Loop * getNextL(fk_Loop *loop) const;
268
270
279 fk_Vertex * getLastV(void) const;
280
282
291 fk_Half * getLastH(void) const;
292
294
303 fk_Edge * getLastE(void) const;
304
306
315 fk_Loop * getLastL(void) const;
317
320
322
327 int getVNum(void) const;
328
330
335 int getHNum(void) const;
336
338
343 int getENum(void) const;
344
346
351 int getLNum(void) const;
353
356
358
371 void getVertexList(std::list<fk_Vertex *> *list);
372
374
387 void getHalfList(std::list<fk_Half *> *list);
388
389
391
404 void getEdgeList(std::list<fk_Edge *> *list);
405
407
420 void getLoopList(std::list<fk_Loop *> *list);
422
423 private:
424 fk_DataBase *ope_DB;
425
426 protected:
427
428#if !defined(FK_DOXYGEN_USER_PROCESS)
429 fk_DataBase * GetDB(void);
430 void SetDataBase(fk_DataBase *);
431
432 fk_Vertex * GetNewVertexObj_(void);
433 fk_Vertex * GetNewVertexObj_(int);
434 fk_Half * GetNewHalfObj_(void);
435 fk_Half * GetNewHalfObj_(int);
436 fk_Edge * GetNewEdgeObj_(void);
437 fk_Edge * GetNewEdgeObj_(int);
438 fk_Loop * GetNewLoopObj_(void);
439 fk_Loop * GetNewLoopObj_(int);
440
441 bool DeleteVertexObj_(fk_Vertex *);
442 bool DeleteHalfObj_(fk_Half *);
443 bool DeleteEdgeObj_(fk_Edge *);
444 bool DeleteLoopObj_(fk_Loop *);
445
446 void AllDBClear_(void);
447#endif
448 };
449}
450
451#endif // !__FK_DATA_ACCESS_HEADER__
452
453/****************************************************************************
454 *
455 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
456 *
457 * Redistribution and use in source and binary forms,
458 * with or without modification, are permitted provided that the
459 * following conditions are met:
460 *
461 * - Redistributions of source code must retain the above
462 * copyright notice, this list of conditions and the
463 * following disclaimer.
464 *
465 * - Redistributions in binary form must reproduce the above
466 * copyright notice, this list of conditions and the
467 * following disclaimer in the documentation and/or
468 * other materials provided with the distribution.
469 *
470 * - Neither the name of the copyright holders nor the names
471 * of its contributors may be used to endorse or promote
472 * products derived from this software without specific
473 * prior written permission.
474 *
475 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
476 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
477 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
478 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
479 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
480 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
481 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
482 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
483 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
484 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
485 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
486 * POSSIBILITY OF SUCH DAMAGE.
487 *
488 ****************************************************************************/
489/****************************************************************************
490 *
491 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
492 *
493 * 本ソフトウェアおよびソースコードのライセンスは、基本的に
494 * 「修正 BSD ライセンス」に従います。以下にその詳細を記します。
495 *
496 * ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
497 * 以下の条件を満たす場合に限り、再頒布および使用が許可されます。
498 *
499 * - ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、
500 * および下記免責条項を含めること。
501 *
502 * - バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の
503 * 資料に、上記の著作権表示、本条件一覧、および下記免責条項を
504 * 含めること。
505 *
506 * - 書面による特別の許可なしに、本ソフトウェアから派生した製品の
507 * 宣伝または販売促進に、本ソフトウェアの著作権者の名前または
508 * コントリビューターの名前を使用してはならない。
509 *
510 * 本ソフトウェアは、著作権者およびコントリビューターによって「現
511 * 状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、
512 * および特定の目的に対する適合性に関す暗黙の保証も含め、またそれ
513 * に限定されない、いかなる保証もないものとします。著作権者もコン
514 * トリビューターも、事由のいかんを問わず、損害発生の原因いかんを
515 * 問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その
516 * 他の)不法行為であるかを問わず、仮にそのような損害が発生する可
517 * 能性を知らされていたとしても、本ソフトウェアの使用によって発生
518 * した(代替品または代用サービスの調達、使用の喪失、データの喪失、
519 * 利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、
520 * 間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害に
521 * ついて、一切責任を負わないものとします。
522 *
523 ****************************************************************************/
ソリッドモデル用位相要素アクセスクラス
Definition DataAccess.h:19
bool checkTopology(void)
位相状況チェック関数
bool existLoop(int ID) const
ループ位相要素存在判定関数2
fk_Edge * getEData(int ID) const
稜線位相要素参照関数
fk_Vertex * getLastV(void) const
頂点位相最終要素参照関数
int getVNum(void) const
頂点数参照関数
int getHNum(void) const
半稜線数参照関数
bool existEdge(int ID) const
稜線位相要素存在判定関数2
virtual ~fk_DataAccess()
デストラクタ
fk_Loop * getLastL(void) const
ループ位相最終要素参照関数
fk_Loop * getNextL(fk_Loop *loop) const
ループ位相要素逐次参照関数
fk_Half * getNextH(fk_Half *half) const
半稜線位相要素逐次参照関数
bool checkDB(void) const
データベース設定チェック関数
fk_Edge * getLastE(void) const
稜線位相最終要素参照関数
fk_Half * getHData(int ID) const
半稜線位相要素参照関数
fk_Vertex * getVData(int ID) const
頂点位相要素参照関数
int getENum(void) const
稜線数参照関数
void getLoopList(std::list< fk_Loop * > *list)
ループコンテナ取得関数
void getHalfList(std::list< fk_Half * > *list)
半稜線コンテナ取得関数
void getEdgeList(std::list< fk_Edge * > *list)
稜線コンテナ取得関数
fk_Vertex * getNextV(fk_Vertex *vertex) const
頂点位相要素逐次参照関数
bool existLoop(fk_Loop *loop) const
ループ位相要素存在判定関数1
bool existHalf(int ID) const
半稜線位相要素存在判定関数2
bool existHalf(fk_Half *half) const
半稜線位相要素存在判定関数1
bool existEdge(fk_Edge *edge) const
稜線位相要素存在判定関数1
fk_Edge * getNextE(fk_Edge *edge) const
稜線位相要素逐次参照関数
fk_Loop * getLData(int ID) const
ループ位相要素参照関数
fk_DataAccess(void)
コンストラクタ
bool existVertex(int ID) const
頂点位相要素存在判定関数2
bool existVertex(fk_Vertex *vertex) const
頂点位相要素存在判定関数1
fk_Half * getLastH(void) const
半稜線位相最終要素参照関数
int getLNum(void) const
ループ数参照関数
void printTopology(void)
位相状況出力関数
void getVertexList(std::list< fk_Vertex * > *list)
頂点コンテナ取得関数
ソリッドモデルの稜線位相を管理するクラス
Definition Edge.h:41
ソリッドモデルの半稜線位相を管理するクラス
Definition Half.h:25
ソリッドモデルのループ位相を管理するクラス
Definition Loop.h:43
ファイル入出力機能用抽象クラス
Definition ParserData.h:15
半稜線構造 (Half-Edge Structure) による任意形状を生成、管理するクラス
Definition Solid.h:66
ソリッドモデルの頂点位相を管理するクラス
Definition Vertex.h:26
Fine Kernel Toolkit 名前空間
Definition Angle.h:6