FineKernelToolKit: CLI/FK_CLI/include/Boundary_CLI.h ソースファイル

FineKernelToolKit 4.3.0

読み取り中…
検索中…
一致する文字列を見つけられません
Boundary_CLI.h
[詳解]
1#pragma once
2
3#include <FK/Model.h>
4#include "MatAdmin_CLI.h"
5#include "Material_CLI.h"
6
7namespace FK_CLI
8{
10 public enum class fk_BoundaryMode {
11 SPHERE,
12 AABB,
13 OBB,
14 CAPSULE,
15 NONE
16 };
17
19
60 public ref class fk_Boundary : fk_MatrixAdmin {
61 internal:
62 ::FK::fk_Model * GetP(void);
63
64 public:
65#if !defined(FK_DOXYGEN_USER_PROCESS)
66 fk_Boundary(bool);
67 ~fk_Boundary();
68
69#endif
71
84 property fk_BoundaryMode BMode {
85 fk_BoundaryMode get();
86 void set(fk_BoundaryMode argMode);
87 }
88
90
97 property double SphereRadius {
98 double get();
99 void set(double argRad);
100 }
101
102 //！ 境界球位置プロパティ
110 property fk_Vector^ SpherePos {
111 fk_Vector^ get();
112 void set(fk_Vector^ argPos);
113 }
114
116
123 property fk_Vector^ AABB {
124 fk_Vector^ get();
125 void set(fk_Vector^ argSize);
126 }
127
129
136 property fk_Vector^ AABBMax {
137 fk_Vector^ get();
138 void set(fk_Vector^ argV);
139 }
140
142
149 property fk_Vector^ AABBMin {
150 fk_Vector^ get();
151 void set(fk_Vector^ argV);
152 }
153
155
162 property fk_Vector^ OBB {
163 fk_Vector^ get();
164 void set(fk_Vector^ argSize);
165 }
166
168
175 property fk_Vector^ OBBMax {
176 fk_Vector^ get();
177 void set(fk_Vector^ argV);
178 }
179
181
188 property fk_Vector^ OBBMin {
189 fk_Vector^ get();
190 void set(fk_Vector^ argV);
191 }
192
194
199 property double CapsuleRadius {
200 double get();
201 void set(double);
202 }
203
205
210 property double CapsuleLength {
211 double get();
212 }
213
215
220 property fk_Vector^ CapsuleStart {
221 fk_Vector^ get();
222 void set(fk_Vector^ argV);
223 }
224
226
231 property fk_Vector^ CapsuleEnd {
232 fk_Vector^ get();
233 void set(fk_Vector^ argV);
234 }
235
237
242 property bool BDraw {
243 bool get();
244 void set(bool argMode);
245 }
246
248
254 property fk_Color^ BLineColor {
255 fk_Color^ get();
256 void set(fk_Color^ argC);
257 }
258
260
270 property fk_Color^ BIntLineColor {
271 fk_Color^ get();
272 void set(fk_Color^ argC);
273 }
274
276
281 property double BLineWidth {
282 double get();
283 void set(double argW);
284 }
285
287
297 void SetAABBMaxMin(fk_Vector^ max, fk_Vector^ min);
298
300
310 void SetOBBMaxMin(fk_Vector^ max, fk_Vector^ min);
311
314
316
329 void SetCapsule(fk_Vector^ startPos, fk_Vector^ endPos, double radius);
330
332 };
333}
334
335/****************************************************************************
336 *
337 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
338 *
339 * Redistribution and use in source and binary forms,
340 * with or without modification, are permitted provided that the
341 * following conditions are met:
342 *
343 * - Redistributions of source code must retain the above
344 * copyright notice, this list of conditions and the
345 * following disclaimer.
346 *
347 * - Redistributions in binary form must reproduce the above
348 * copyright notice, this list of conditions and the
349 * following disclaimer in the documentation and/or
350 * other materials provided with the distribution.
351 *
352 * - Neither the name of the copyright holders nor the names
353 * of its contributors may be used to endorse or promote
354 * products derived from this software without specific
355 * prior written permission.
356 *
357 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
358 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
359 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
360 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
361 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
362 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
363 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
364 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
365 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
366 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
367 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
368 * POSSIBILITY OF SUCH DAMAGE.
369 *
370 ****************************************************************************/
371/****************************************************************************
372 *
373 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
374 *
375 * 本ソフトウェアおよびソースコードのライセンスは、基本的に
376 * 「修正 BSD ライセンス」に従います。以下にその詳細を記します。
377 *
378 * ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
379 * 以下の条件を満たす場合に限り、再頒布および使用が許可されます。
380 *
381 * - ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、
382 * および下記免責条項を含めること。
383 *
384 * - バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の
385 * 資料に、上記の著作権表示、本条件一覧、および下記免責条項を
386 * 含めること。
387 *
388 * - 書面による特別の許可なしに、本ソフトウェアから派生した製品の
389 * 宣伝または販売促進に、本ソフトウェアの著作権者の名前または
390 * コントリビューターの名前を使用してはならない。
391 *
392 * 本ソフトウェアは、著作権者およびコントリビューターによって「現
393 * 状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、
394 * および特定の目的に対する適合性に関す暗黙の保証も含め、またそれ
395 * に限定されない、いかなる保証もないものとします。著作権者もコン
396 * トリビューターも、事由のいかんを問わず、損害発生の原因いかんを
397 * 問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その
398 * 他の)不法行為であるかを問わず、仮にそのような損害が発生する可
399 * 能性を知らされていたとしても、本ソフトウェアの使用によって発生
400 * した(代替品または代用サービスの調達、使用の喪失、データの喪失、
401 * 利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、
402 * 間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害に
403 * ついて、一切責任を負わないものとします。
404 *
405 ****************************************************************************/
MatAdmin_CLI.h
Material_CLI.h
FK_CLI::fk_Boundary
境界ボリュームを管理するクラス
Definition Boundary_CLI.h:60
FK_CLI::fk_Boundary::BLineWidth
double BLineWidth
境界ボリューム描画線幅プロパティ
Definition Boundary_CLI.h:281
FK_CLI::fk_Boundary::OBB
fk_Vector^ OBB
有向境界ボックス (OBB) サイズプロパティ
Definition Boundary_CLI.h:162
FK_CLI::fk_Boundary::BIntLineColor
fk_Color^ BIntLineColor
境界ボリューム干渉状態描画色プロパティ
Definition Boundary_CLI.h:270
FK_CLI::fk_Boundary::AABBMin
fk_Vector^ AABBMin
軸平行境界ボックス (AABB) 最小値側プロパティ
Definition Boundary_CLI.h:149
FK_CLI::fk_Boundary::CapsuleRadius
double CapsuleRadius
カプセル型領域規定距離プロパティ
Definition Boundary_CLI.h:199
FK_CLI::fk_Boundary::BLineColor
fk_Color^ BLineColor
境界ボリューム非干渉描画色プロパティ
Definition Boundary_CLI.h:254
FK_CLI::fk_Boundary::SetOBBMaxMin
void SetOBBMaxMin(fk_Vector^ max, fk_Vector^ min)
有向境界ボックス (OBB) 最大最小設定メソッド
FK_CLI::fk_Boundary::CapsuleEnd
fk_Vector^ CapsuleEnd
カプセル型中心軸終点プロパティ
Definition Boundary_CLI.h:231
FK_CLI::fk_Boundary::AABB
fk_Vector^ AABB
軸平行境界ボックス (AABB) サイズプロパティ
Definition Boundary_CLI.h:123
FK_CLI::fk_Boundary::OBBMax
fk_Vector^ OBBMax
有向境界ボックス (OBB) 最大値側プロパティ
Definition Boundary_CLI.h:175
FK_CLI::fk_Boundary::CapsuleStart
fk_Vector^ CapsuleStart
カプセル型中心軸始点プロパティ
Definition Boundary_CLI.h:220
FK_CLI::fk_Boundary::SpherePos
fk_Vector^ SpherePos
Definition Boundary_CLI.h:110
FK_CLI::fk_Boundary::OBBMin
fk_Vector^ OBBMin
有向境界ボックス (OBB) 最小値側プロパティ
Definition Boundary_CLI.h:188
FK_CLI::fk_Boundary::SetCapsule
void SetCapsule(fk_Vector^ startPos, fk_Vector^ endPos, double radius)
カプセル型設定メソッド
FK_CLI::fk_Boundary::BDraw
bool BDraw
境界ボリューム描画有無プロパティ
Definition Boundary_CLI.h:242
FK_CLI::fk_Boundary::BMode
fk_BoundaryMode BMode
境界ボリューム選択プロパティ
Definition Boundary_CLI.h:84
FK_CLI::fk_Boundary::SetAABBMaxMin
void SetAABBMaxMin(fk_Vector^ max, fk_Vector^ min)
軸平行境界ボックス (AABB) 最大最小設定メソッド
FK_CLI::fk_Boundary::AABBMax
fk_Vector^ AABBMax
軸平行境界ボックス (AABB) 最大値側プロパティ
Definition Boundary_CLI.h:136
FK_CLI::fk_Boundary::CapsuleLength
double CapsuleLength
カプセル型中心軸長プロパティ
Definition Boundary_CLI.h:210
FK_CLI::fk_Boundary::SphereRadius
double SphereRadius
境界球半径プロパティ
Definition Boundary_CLI.h:97
FK_CLI::fk_MatrixAdmin
モデルの位置や姿勢を管理するクラス
Definition MatAdmin_CLI.h:49
FK_CLI::fk_Vector
3次元ベクトルを管理するクラス
Definition Vector_CLI.h:35
FK_CLI
Definition AppWindow_CLI.h:11
FK_CLI::fk_BoundaryMode
fk_BoundaryMode
境界ボリュームのタイプを表す列挙型
Definition Boundary_CLI.h:10
FK_CLI::fk_BoundaryMode::AABB
@ AABB
軸平行境界ボックス (Axis Aligned Bounding Box)
Definition Boundary_CLI.h:12
FK_CLI::fk_BoundaryMode::CAPSULE
@ CAPSULE
カプセル型
Definition Boundary_CLI.h:14
FK_CLI::fk_BoundaryMode::SPHERE
@ SPHERE
境界球
Definition Boundary_CLI.h:11
FK_CLI::fk_BoundaryMode::OBB
@ OBB
有向境界ボックス (Oriented Bounding Box)
Definition Boundary_CLI.h:13
FK_CLI::fk_BoundaryMode::NONE
@ NONE
未定義境界
Definition Boundary_CLI.h:15