FineKernelToolKit  3.1.0
Boundary_CLI.h
[詳解]
1 // Model_CLI.h
2 
3 #pragma once
4 
5 #include <FK/Model.h>
6 #include "MatAdmin_CLI.h"
7 #include "Material_CLI.h"
8 
9 namespace FK_CLI
10 {
12  public enum class fk_BoundaryMode {
13  SPHERE,
14  AABB,
15  OBB,
16  CAPSULE,
17  NONE
18  };
19 
21 
62  public ref class fk_Boundary : fk_MatrixAdmin {
63  internal:
64  ::fk_Model * GetP(void);
65 
66  public:
67 #ifndef FK_DOXYGEN_USER_PROCESS
68  fk_Boundary(bool);
69  ~fk_Boundary();
70 
71 #endif
72 
87  fk_BoundaryMode get();
88  void set(fk_BoundaryMode argMode);
89  }
90 
92 
99  property double SphereRadius {
100  double get();
101  void set(double argRad);
102  }
103 
105 
114  property fk_Vector^ AABB {
115  fk_Vector^ get();
116  void set(fk_Vector^ argSize);
117  }
118 
120 
127  property fk_Vector^ OBB {
128  fk_Vector^ get();
129  void set(fk_Vector^ argSize);
130  }
131 
133 
138  property bool BDraw {
139  bool get();
140  void set(bool argMode);
141  }
142 
144 
150  property fk_Color^ BLineColor {
151  fk_Color^ get();
152  void set(fk_Color^ argC);
153  }
154 
156 
167  fk_Color^ get();
168  void set(fk_Color^ argC);
169  }
170 
172 
177  property double BLineWidth {
178  double get();
179  void set(double argW);
180  }
181 
183 
184 
186 
199  void SetCapsule(fk_Vector^ startPos, fk_Vector^ endPos, double radius);
200 
202 
209  double GetCapsuleRadius(void);
210 
212 
219  double GetCapsuleLength(void);
220 
222 
230 
232 
241  };
242 }
243 
244 /****************************************************************************
245  *
246  * Copyright (c) 1999-2016, Fine Kernel Project, All rights reserved.
247  *
248  * Redistribution and use in source and binary forms,
249  * with or without modification, are permitted provided that the
250  * following conditions are met:
251  *
252  * - Redistributions of source code must retain the above
253  * copyright notice, this list of conditions and the
254  * following disclaimer.
255  *
256  * - Redistributions in binary form must reproduce the above
257  * copyright notice, this list of conditions and the
258  * following disclaimer in the documentation and/or
259  * other materials provided with the distribution.
260  *
261  * - Neither the name of the copyright holders nor the names
262  * of its contributors may be used to endorse or promote
263  * products derived from this software without specific
264  * prior written permission.
265  *
266  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
267  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
268  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
269  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
270  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
271  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
272  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
273  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
274  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
275  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
276  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
277  * POSSIBILITY OF SUCH DAMAGE.
278  *
279  ****************************************************************************/
280 /****************************************************************************
281  *
282  * Copyright (c) 1999-2016, Fine Kernel Project, All rights reserved.
283  *
284  * 本ソフトウェアおよびソースコードのライセンスは、基本的に
285  * 「修正 BSD ライセンス」に従います。以下にその詳細を記します。
286  *
287  * ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
288  * 以下の条件を満たす場合に限り、再頒布および使用が許可されます。
289  *
290  * - ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、
291  * および下記免責条項を含めること。
292  *
293  * - バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の
294  * 資料に、上記の著作権表示、本条件一覧、および下記免責条項を
295  * 含めること。
296  *
297  * - 書面による特別の許可なしに、本ソフトウェアから派生した製品の
298  * 宣伝または販売促進に、本ソフトウェアの著作権者の名前または
299  * コントリビューターの名前を使用してはならない。
300  *
301  * 本ソフトウェアは、著作権者およびコントリビューターによって「現
302  * 状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、
303  * および特定の目的に対する適合性に関す暗黙の保証も含め、またそれ
304  * に限定されない、いかなる保証もないものとします。著作権者もコン
305  * トリビューターも、事由のいかんを問わず、損害発生の原因いかんを
306  * 問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その
307  * 他の)不法行為であるかを問わず、仮にそのような損害が発生する可
308  * 能性を知らされていたとしても、本ソフトウェアの使用によって発生
309  * した(代替品または代用サービスの調達、使用の喪失、データの喪失、
310  * 利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、
311  * 間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害に
312  * ついて、一切責任を負わないものとします。
313  *
314  ****************************************************************************/
fk_BoundaryMode
境界ボリュームのタイプを表す列挙型
Definition: Boundary_CLI.h:12
fk_Color^ BIntLineColor
境界ボリューム干渉状態描画色プロパティ
Definition: Boundary_CLI.h:166
double BLineWidth
境界ボリューム描画線幅プロパティ
Definition: Boundary_CLI.h:177
モデルの位置や姿勢を管理するクラス
Definition: MatAdmin_CLI.h:51
fk_Vector^ GetCapsuleEndPos(void)
カプセル型中心軸終点取得メソッド
void SetCapsule(fk_Vector^ startPos, fk_Vector^ endPos, double radius)
カプセル型設定メソッド
double GetCapsuleLength(void)
カプセル型中心軸長取得メソッド
double GetCapsuleRadius(void)
カプセル型領域規定距離取得メソッド
fk_Vector^ GetCapsuleStartPos(void)
カプセル型中心軸始点取得メソッド
fk_Vector^ OBB
有向境界ボックス (OBB) サイズプロパティ
Definition: Boundary_CLI.h:127
有向境界ボックス (Oriented Bounding Box)
double SphereRadius
境界球半径プロパティ
Definition: Boundary_CLI.h:99
3次元ベクトルを管理するクラス
Definition: Vector_CLI.h:37
RGB色を管理するクラス
Definition: Material_CLI.h:24
モデルを生成、管理するクラス
Definition: Model_CLI.h:125
軸平行境界ボックス (Axis Aligned Bounding Box)
fk_BoundaryMode BMode
境界ボリューム選択プロパティ
Definition: Boundary_CLI.h:86
fk_Vector^ AABB
軸平行境界ボックス (AABB) サイズプロパティ
Definition: Boundary_CLI.h:114
bool BDraw
境界ボリューム描画有無プロパティ
Definition: Boundary_CLI.h:138
fk_Color^ BLineColor
境界ボリューム非干渉描画色プロパティ
Definition: Boundary_CLI.h:150
境界ボリュームを管理するクラス
Definition: Boundary_CLI.h:62
Definition: AppWindow_CLI.h:11