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

FineKernelToolKit 4.3.0

読み取り中…
検索中…
一致する文字列を見つけられません
GuideObject.h
[詳解]
1#if !defined(__FK_GUIDE_OBJECT_HEADER__)
2#define __FK_GUIDE_OBJECT_HEADER__
3
4#include <FK/Line.h>
5#include <FK/Model.h>
6
7namespace FK {
9 enum class fk_Guide : unsigned int {
10 NO_GUIDE = 0,
11 AXIS_X = 1 << 1,
12 AXIS_Y = 1 << 2,
13 AXIS_Z = 1 << 3,
14 GRID_XZ = 1 << 4,
15 GRID_XY = 1 << 5,
16 GRID_YZ = 1 << 6,
17 };
18
20 fk_Guide operator | (fk_Guide, fk_Guide);
21
23 fk_Guide operator & (fk_Guide, fk_Guide);
24
26 fk_Guide operator ^ (fk_Guide, fk_Guide);
27
28 class fk_Scene;
29
31
42
43 class fk_GuideObject {
44
45#if !defined(FK_DOXYGEN_USER_PROCESS)
46 class Member {
47 public:
48 fk_Line grid;
49 fk_Model gridModel[3];
50 fk_Line axis[3];
51 fk_Model axisModel[3];
52 int num;
53 double scale;
54
55 Member(void);
56 };
57#endif
58
59 public:
61 fk_GuideObject(void);
63 ~fk_GuideObject(void);
64
65#if !defined(FK_OLD_NONSUPPORT) && !defined(FK_DOXYGEN_USER_PROCESS)
67
75 void setAxisWidth(double width);
76
78
86 void setGridWidth(double width);
87#endif
88
90
98 void setScale(double scale);
99
101
113 void setNum(int num);
114
116
124 void setParent(fk_Model *model);
125
127
143 void entryScene(fk_Scene *scene,
144 fk_Guide mode =
145 fk_Guide::AXIS_X |
146 fk_Guide::AXIS_Y |
147 fk_Guide::AXIS_Z |
148 fk_Guide::GRID_XZ);
149
151
160 void removeScene(fk_Scene *scene, fk_Guide mode = fk_Guide::NO_GUIDE);
161
162#if !defined(FK_DOXYGEN_USER_PROCESS)
163 void SetFinalizeMode(void);
164#endif
165
166 private:
167
168 std::unique_ptr<Member> _m;
169 };
170}
171#endif
172
173/****************************************************************************
174 *
175 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
176 *
177 * Redistribution and use in source and binary forms,
178 * with or without modification, are permitted provided that the
179 * following conditions are met:
180 *
181 * - Redistributions of source code must retain the above
182 * copyright notice, this list of conditions and the
183 * following disclaimer.
184 *
185 * - Redistributions in binary form must reproduce the above
186 * copyright notice, this list of conditions and the
187 * following disclaimer in the documentation and/or
188 * other materials provided with the distribution.
189 *
190 * - Neither the name of the copyright holders nor the names
191 * of its contributors may be used to endorse or promote
192 * products derived from this software without specific
193 * prior written permission.
194 *
195 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
196 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
197 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
198 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
199 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
200 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
201 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
202 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
203 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
204 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
205 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
206 * POSSIBILITY OF SUCH DAMAGE.
207 *
208 ****************************************************************************/
209/****************************************************************************
210 *
211 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
212 *
213 * 本ソフトウェアおよびソースコードのライセンスは、基本的に
214 * 「修正 BSD ライセンス」に従います。以下にその詳細を記します。
215 *
216 * ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
217 * 以下の条件を満たす場合に限り、再頒布および使用が許可されます。
218 *
219 * - ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、
220 * および下記免責条項を含めること。
221 *
222 * - バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の
223 * 資料に、上記の著作権表示、本条件一覧、および下記免責条項を
224 * 含めること。
225 *
226 * - 書面による特別の許可なしに、本ソフトウェアから派生した製品の
227 * 宣伝または販売促進に、本ソフトウェアの著作権者の名前または
228 * コントリビューターの名前を使用してはならない。
229 *
230 * 本ソフトウェアは、著作権者およびコントリビューターによって「現
231 * 状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、
232 * および特定の目的に対する適合性に関す暗黙の保証も含め、またそれ
233 * に限定されない、いかなる保証もないものとします。著作権者もコン
234 * トリビューターも、事由のいかんを問わず、損害発生の原因いかんを
235 * 問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その
236 * 他の)不法行為であるかを問わず、仮にそのような損害が発生する可
237 * 能性を知らされていたとしても、本ソフトウェアの使用によって発生
238 * した(代替品または代用サービスの調達、使用の喪失、データの喪失、
239 * 利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、
240 * 間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害に
241 * ついて、一切責任を負わないものとします。
242 *
243 ****************************************************************************/
Line.h
Model.h
FK::fk_GuideObject::setNum
void setNum(int num)
グリッド分割数設定関数
FK::fk_GuideObject::~fk_GuideObject
~fk_GuideObject(void)
デストラクタ
FK::fk_GuideObject::setParent
void setParent(fk_Model *model)
座標系ガイド適用モデル設定関数
FK::fk_GuideObject::fk_GuideObject
fk_GuideObject(void)
コンストラクタ
FK::fk_GuideObject::setScale
void setScale(double scale)
グリッド間隔設定関数
FK::fk_GuideObject::entryScene
void entryScene(fk_Scene *scene, fk_Guide mode=fk_Guide::AXIS_X|fk_Guide::AXIS_Y|fk_Guide::AXIS_Z|fk_Guide::GRID_XZ)
シーン登録関数
FK::fk_GuideObject::removeScene
void removeScene(fk_Scene *scene, fk_Guide mode=fk_Guide::NO_GUIDE)
シーン登録解除関数
FK::fk_Line
有向線分を生成、管理するクラス
Definition Line.h:22
FK::fk_Model
モデルを生成、管理するクラス
Definition Model.h:101
FK::fk_Scene
シーンを制御するクラス
Definition Scene.h:48
FK
Fine Kernel Toolkit 名前空間
Definition Angle.h:6
FK::operator|
fk_Draw operator|(fk_Draw, fk_Draw)
描画モード用ビット論理和演算子
FK::operator&
fk_Draw operator&(fk_Draw, fk_Draw)
描画モード用ビット論理積演算子
FK::operator^
fk_Draw operator^(fk_Draw, fk_Draw)
描画モード用ビット XOR 演算子
FK::fk_Guide
fk_Guide
座標ガイドを表す列挙型
Definition GuideObject.h:9
FK::fk_Guide::AXIS_Z
@ AXIS_Z
z 軸
Definition GuideObject.h:13
FK::fk_Guide::AXIS_Y
@ AXIS_Y
y 軸
Definition GuideObject.h:12
FK::fk_Guide::NO_GUIDE
@ NO_GUIDE
ガイドなし
Definition GuideObject.h:10
FK::fk_Guide::GRID_YZ
@ GRID_YZ
yz 平面
Definition GuideObject.h:16
FK::fk_Guide::GRID_XZ
@ GRID_XZ
xz 平面
Definition GuideObject.h:14
FK::fk_Guide::GRID_XY
@ GRID_XY
xy 平面
Definition GuideObject.h:15
FK::fk_Guide::AXIS_X
@ AXIS_X
x 軸
Definition GuideObject.h:11