FineKernelToolKit: FK/Edge.h ソースファイル

FineKernelToolKit 4.3.0

読み取り中…
検索中…
一致する文字列を見つけられません
Edge.h
[詳解]
1#if !defined(__FK_EDGE_HEADER__)
2#define __FK_EDGE_HEADER__
3
4#include <FK/Topology.h>
5
6namespace FK {
7
8 class fk_Half;
9 class fk_Curve;
10
12 enum class fk_EdgeStatus {
13 NONE,
14 UNDEF,
15 HALF,
16 BOTH
17 };
18
20 enum class fk_CurveType {
21 BEZ,
22 BSPL
23 };
24
26
40
41 class fk_Edge : public fk_Topology {
42
43 friend class fk_Operation;
44 friend class fk_DataBase;
45 friend class fk_IFSetHandle;
46#if !defined(FK_DOXYGEN_USER_PROCESS)
47 class Member {
48 public:
49 int leftHalf;
50 int rightHalf;
51 fk_Curve *curv;
52 double width;
53
54 Member(void);
55 };
56#endif
57
58 public:
60 fk_Edge(int = FK_UNDEFINED);
62 virtual ~fk_Edge();
63
65
70 fk_Half * getLeftHalf(void) const;
71
73
78 fk_Half * getRightHalf(void) const;
79
81
86 double getDrawWidth(void) const;
87
89
98 void setDrawWidth(double width);
99
101
110 void setCurveGeometry(fk_Curve *curve);
111
113
120 fk_Curve * getCurveGeometry(void);
121
122#if !defined(FK_DOXYGEN_USER_PROCESS)
123 void Init(fk_DataBase *, int);
124 void Print(void) const;
125 bool Check(void) const;
126 bool Compare(fk_Edge *) const;
127
128#endif
129
130 private:
131 std::shared_ptr<Member> _m;
132 int SetLeftHalf(int);
133 int SetRightHalf(int);
134 void SwapHalf(void);
135 };
136}
137
138#endif // !__FK_EDGE_HEADER__
139
140/****************************************************************************
141 *
142 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
143 *
144 * Redistribution and use in source and binary forms,
145 * with or without modification, are permitted provided that the
146 * following conditions are met:
147 *
148 * - Redistributions of source code must retain the above
149 * copyright notice, this list of conditions and the
150 * following disclaimer.
151 *
152 * - Redistributions in binary form must reproduce the above
153 * copyright notice, this list of conditions and the
154 * following disclaimer in the documentation and/or
155 * other materials provided with the distribution.
156 *
157 * - Neither the name of the copyright holders nor the names
158 * of its contributors may be used to endorse or promote
159 * products derived from this software without specific
160 * prior written permission.
161 *
162 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
163 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
164 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
165 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
166 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
167 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
168 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
169 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
170 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
171 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
172 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
173 * POSSIBILITY OF SUCH DAMAGE.
174 *
175 ****************************************************************************/
176/****************************************************************************
177 *
178 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
179 *
180 * 本ソフトウェアおよびソースコードのライセンスは、基本的に
181 * 「修正 BSD ライセンス」に従います。以下にその詳細を記します。
182 *
183 * ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
184 * 以下の条件を満たす場合に限り、再頒布および使用が許可されます。
185 *
186 * - ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、
187 * および下記免責条項を含めること。
188 *
189 * - バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の
190 * 資料に、上記の著作権表示、本条件一覧、および下記免責条項を
191 * 含めること。
192 *
193 * - 書面による特別の許可なしに、本ソフトウェアから派生した製品の
194 * 宣伝または販売促進に、本ソフトウェアの著作権者の名前または
195 * コントリビューターの名前を使用してはならない。
196 *
197 * 本ソフトウェアは、著作権者およびコントリビューターによって「現
198 * 状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、
199 * および特定の目的に対する適合性に関す暗黙の保証も含め、またそれ
200 * に限定されない、いかなる保証もないものとします。著作権者もコン
201 * トリビューターも、事由のいかんを問わず、損害発生の原因いかんを
202 * 問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その
203 * 他の)不法行為であるかを問わず、仮にそのような損害が発生する可
204 * 能性を知らされていたとしても、本ソフトウェアの使用によって発生
205 * した(代替品または代用サービスの調達、使用の喪失、データの喪失、
206 * 利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、
207 * 間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害に
208 * ついて、一切責任を負わないものとします。
209 *
210 ****************************************************************************/
Topology.h
FK::fk_Curve
曲線用純粋仮想クラス
Definition Curve.h:22
FK::fk_Edge::fk_IFSetHandle
friend class fk_IFSetHandle
Definition Edge.h:45
FK::fk_Edge::setCurveGeometry
void setCurveGeometry(fk_Curve *curve)
幾何曲線形状設定関数
FK::fk_Edge::setDrawWidth
void setDrawWidth(double width)
描画線幅設定関数
FK::fk_Edge::~fk_Edge
virtual ~fk_Edge()
デストラクタ
FK::fk_Edge::fk_DataBase
friend class fk_DataBase
Definition Edge.h:44
FK::fk_Edge::fk_Edge
fk_Edge(int=FK_UNDEFINED)
コンストラクタ
FK::fk_Edge::getCurveGeometry
fk_Curve * getCurveGeometry(void)
幾何曲線形状取得関数
FK::fk_Edge::getLeftHalf
fk_Half * getLeftHalf(void) const
左側半稜線取得関数
FK::fk_Edge::fk_Operation
friend class fk_Operation
Definition Edge.h:43
FK::fk_Edge::getRightHalf
fk_Half * getRightHalf(void) const
右側半稜線取得関数
FK::fk_Edge::getDrawWidth
double getDrawWidth(void) const
描画線幅取得関数
FK::fk_Half
ソリッドモデルの半稜線位相を管理するクラス
Definition Half.h:25
FK::fk_Topology::fk_Topology
fk_Topology(void)
コンストラクタ
FK
Fine Kernel Toolkit 名前空間
Definition Angle.h:6
FK::fk_CurveType
fk_CurveType
幾何曲線の種類を表す列挙型
Definition Edge.h:20
FK::fk_CurveType::BEZ
@ BEZ
Bezier 曲線
Definition Edge.h:21
FK::fk_CurveType::BSPL
@ BSPL
B-Spline 曲線
Definition Edge.h:22
FK::fk_BoundaryMode::NONE
@ NONE
未定義境界
Definition Boundary.h:19
FK::fk_Type::HALF
@ HALF
fk_Half 型
Definition Base.h:93
FK::fk_EdgeStatus
fk_EdgeStatus
稜線状態を表す列挙型
Definition Edge.h:12
FK::fk_EdgeStatus::BOTH
@ BOTH
両定義稜線
Definition Edge.h:16
FK::fk_EdgeStatus::UNDEF
@ UNDEF
未定義稜線
Definition Edge.h:14