FineKernelToolKit 4.2.13
読み取り中…
検索中…
一致する文字列を見つけられません
Reference.h
[詳解]
1#if !defined(__FK_REFERENCE_HEADER__)
2#define __FK_REFERENCE_HEADER__
3
4#include <FK/Edge.h>
5#include <FK/DataAccess.h>
6
7#include <vector>
8
9namespace FK {
10 class fk_Vertex;
11 class fk_Half;
12 class fk_Loop;
13
14 /*
15 ここで定義する参照関数 ---
16
17 頂点に関連する関数
18 - fk_Half * getOneHOnV(fk_Vertex *)
19 - vector<fk_Half *> getAllHOnV(fk_Vertex *)
20 - vector<fk_Edge *> getEOnVV(fk_Vertex *, fk_Vertex *)
21 - fk_Edge * getOneEOnV(fk_Vertex *)
22 - vector<fk_Edge *> getAllEOnV(fk_Vertex *)
23 - int getENumOnV(fk_Vertex *)
24 - fk_Loop * getOneLOnV(fk_Vertex *)
25 - vector<fk_Loop *> getAllLOnV(fk_Vertex *)
26 - vector<fk_Vertex *> getAllNeighborVOnV(fk_Vertex *)
27
28 半稜線に関連する関数
29 - fk_Vertex * getVOnH(fk_Half *)
30 - fk_Half * getMateHOnH(fk_Half *)
31 - fk_Edge * getParentEOnH(fk_Half *)
32 - fk_Loop * getParentLOnH(fk_Half *)
33
34 稜線に関連する関数
35 - fk_Vertex * getRightVOnE(fk_Edge *)
36 - fk_Vertex * getLeftVOnE(fk_Edge *)
37 - fk_Half * getRightHOnE(fk_Edge *)
38 - fk_Half * getLeftHOnE(fk_Edge *)
39 - fk_Loop * getRightLOnE(fk_Edge *)
40 - fk_Loop * getLeftLOnE(fk_Edge *)
41 - fk_EdgeStatus getEdgeStatus(fk_Edge *)
42
43 ループに関連する関数
44 - fk_Vertex * getOneVonL(fk_Loop *)
45 - vector<fk_Vertex *> getAllVOnL(fk_Loop *)
46 - int getVNumOnL(fk_Loop *)
47 - fk_Half * getOneHOnL(fk_Loop *)
48 - vector<fk_Half *> getAllHOnL(fk_Loop *)
49 - fk_Edge * getOneEOnL(fk_Loop *)
50 - vector<fk_Edge *> getAllEOnL(fk_Loop *)
51 - fk_Loop * getOneNeighorLOnL(fk_Loop *)
52 - vector<fk_Loop *> getAllNeighborLOnL(fk_Loop *)
53 - fk_Loop * getNeighborLOnLH(fk_Loop *, fk_Half *)
54 - fk_Loop * getNeighborLOnLE(fk_Loop *, fk_Edge *)
55
56 */
57
59
74 public:
75
78
80
89
91
101
104
106
114
116
124
126
134
136
146
149
151
159
161
169
171
179
181
189
191
200
202
211
213
227
229
232
234
242
244
252
254
263 };
264
266
281 public:
282
285
287
296
298
306 std::vector<fk_Half *> getAllHOnV(fk_Vertex *V) const;
307
309
317 std::vector<fk_Edge *> getAllEOnV(fk_Vertex *V) const;
318
320
328 std::vector<fk_Loop *> getAllLOnV(fk_Vertex *V) const;
329
331
338 int getENumOnV(fk_Vertex *V) const;
339
341
344
346
354 std::vector<fk_Vertex *> getAllVOnL(fk_Loop *L) const;
355
357
365 std::vector<fk_Half *> getAllHOnL(fk_Loop *L) const;
366
368
376 std::vector<fk_Edge *> getAllEOnL(fk_Loop *L) const;
377
379
388
390
404
411 int getVNumOnL(fk_Loop *L) const;
412
414 };
415
416
418
433 public:
434
436
444 std::vector<fk_Vertex *> getAllNeighborVOnV(fk_Vertex *V) const;
445
447
456 std::vector<fk_Edge *> getEOnVV(fk_Vertex *V1, fk_Vertex *V2) const;
457
459
468
470
483
485
493 std::vector<fk_Loop *> getAllNeighborLOnL(fk_Loop *L) const;
494 };
495}
496
497#endif // !__FK_REFERENCE_HEADER__
498
499/****************************************************************************
500 *
501 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
502 *
503 * Redistribution and use in source and binary forms,
504 * with or without modification, are permitted provided that the
505 * following conditions are met:
506 *
507 * - Redistributions of source code must retain the above
508 * copyright notice, this list of conditions and the
509 * following disclaimer.
510 *
511 * - Redistributions in binary form must reproduce the above
512 * copyright notice, this list of conditions and the
513 * following disclaimer in the documentation and/or
514 * other materials provided with the distribution.
515 *
516 * - Neither the name of the copyright holders nor the names
517 * of its contributors may be used to endorse or promote
518 * products derived from this software without specific
519 * prior written permission.
520 *
521 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
522 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
523 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
524 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
525 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
526 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
527 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
528 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
529 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
530 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
531 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
532 * POSSIBILITY OF SUCH DAMAGE.
533 *
534 ****************************************************************************/
535/****************************************************************************
536 *
537 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
538 *
539 * 本ソフトウェアおよびソースコードのライセンスは、基本的に
540 * 「修正 BSD ライセンス」に従います。以下にその詳細を記します。
541 *
542 * ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
543 * 以下の条件を満たす場合に限り、再頒布および使用が許可されます。
544 *
545 * - ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、
546 * および下記免責条項を含めること。
547 *
548 * - バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の
549 * 資料に、上記の著作権表示、本条件一覧、および下記免責条項を
550 * 含めること。
551 *
552 * - 書面による特別の許可なしに、本ソフトウェアから派生した製品の
553 * 宣伝または販売促進に、本ソフトウェアの著作権者の名前または
554 * コントリビューターの名前を使用してはならない。
555 *
556 * 本ソフトウェアは、著作権者およびコントリビューターによって「現
557 * 状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、
558 * および特定の目的に対する適合性に関す暗黙の保証も含め、またそれ
559 * に限定されない、いかなる保証もないものとします。著作権者もコン
560 * トリビューターも、事由のいかんを問わず、損害発生の原因いかんを
561 * 問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その
562 * 他の)不法行為であるかを問わず、仮にそのような損害が発生する可
563 * 能性を知らされていたとしても、本ソフトウェアの使用によって発生
564 * した(代替品または代用サービスの調達、使用の喪失、データの喪失、
565 * 利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、
566 * 間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害に
567 * ついて、一切責任を負わないものとします。
568 *
569 ****************************************************************************/
ソリッドモデル用位相要素アクセスクラス
Definition DataAccess.h:19
ソリッドモデルの稜線位相を管理するクラス
Definition Edge.h:41
ソリッドモデルの半稜線位相を管理するクラス
Definition Half.h:25
ソリッドモデルのループ位相を管理するクラス
Definition Loop.h:43
位相状態参照用クラス(Level1)
Definition Reference.h:73
fk_Half * getMateHOnH(fk_Half *H) const
対半稜線参照関数
fk_Loop * getParentLOnH(fk_Half *H) const
親ループ参照関数
fk_Vertex * getRightVOnE(fk_Edge *E) const
右側頂点参照関数
fk_Edge * getOneEOnV(fk_Vertex *V) const
頂点接続稜線参照関数
fk_Half * getRightHOnE(fk_Edge *E) const
右側半稜線参照関数
fk_Loop * getLeftLOnE(fk_Edge *E) const
左側ループ参照関数
fk_Edge * getOneEOnL(fk_Loop *L) const
ループ所属稜線参照関数
fk_Vertex * getOneVOnL(fk_Loop *L) const
ループ所属頂点参照関数
fk_Loop * getRightLOnE(fk_Edge *E) const
右側ループ参照関数
fk_Half * getOneHOnV(fk_Vertex *V) const
頂点接続半稜線参照関数
fk_Half * getLeftHOnE(fk_Edge *E) const
左側半稜線参照関数
fk_Edge * getParentEOnH(fk_Half *H) const
親稜線参照関数
fk_Vertex * getLeftVOnE(fk_Edge *E) const
左側頂点参照関数
fk_EdgeStatus getEdgeStatus(fk_Edge *E) const
稜線位相状態参照関数
fk_Vertex * getVOnH(fk_Half *H) const
半稜線接続頂点参照関数
fk_Half * getOneHOnL(fk_Loop *L) const
ループ所属半稜線参照関数
位相状態参照用クラス(Level2)
Definition Reference.h:280
std::vector< fk_Half * > getAllHOnL(fk_Loop *L) const
ループ所属全半稜線参照関数
std::vector< fk_Edge * > getAllEOnL(fk_Loop *L) const
ループ所属全稜線参照関数
fk_Loop * getOneNeighborLOnL(fk_Loop *L) const
隣接ループ参照関数
fk_Loop * getNeighborLOnLH(fk_Loop *L, fk_Half *H) const
半稜線条件付き隣接ループ参照関数
int getVNumOnL(fk_Loop *L) const
ループ上頂点数参照関数
std::vector< fk_Loop * > getAllLOnV(fk_Vertex *V) const
頂点接続全ループ参照関数
fk_Vertex * getOneNeighborVOnV(fk_Vertex *V) const
隣接頂点参照関数
int getENumOnV(fk_Vertex *V) const
頂点接続稜線数参照関数
std::vector< fk_Vertex * > getAllVOnL(fk_Loop *L) const
ループ所属全頂点参照関数
std::vector< fk_Half * > getAllHOnV(fk_Vertex *V) const
頂点接続全半稜線参照関数
std::vector< fk_Edge * > getAllEOnV(fk_Vertex *V) const
頂点接続全稜線参照関数
位相状態参照用クラス(Level3)
Definition Reference.h:432
fk_Loop * getOneLOnV(fk_Vertex *V) const
頂点接続ループ参照関数
std::vector< fk_Edge * > getEOnVV(fk_Vertex *V1, fk_Vertex *V2) const
頂点間稜線参照関数
std::vector< fk_Vertex * > getAllNeighborVOnV(fk_Vertex *V) const
全隣接頂点参照関数
std::vector< fk_Loop * > getAllNeighborLOnL(fk_Loop *L) const
全隣接ループ参照関数
fk_Loop * getNeighborLOnLE(fk_Loop *L, fk_Edge *E) const
稜線条件付き隣接ループ参照関数
ソリッドモデルの頂点位相を管理するクラス
Definition Vertex.h:26
Fine Kernel Toolkit 名前空間
Definition Angle.h:6
fk_EdgeStatus
稜線状態を表す列挙型
Definition Edge.h:12