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

FineKernelToolKit 4.3.0

読み取り中…
検索中…
一致する文字列を見つけられません
Ray_CLI.h
[詳解]
1#pragma once
2
3#include <FK/Ray.h>
4#include "Math_CLI.h"
5#include "Model_CLI.h"
6
7namespace FK_CLI
8{
10
23
24 public ref class fk_Ray : fk_BaseObject {
25 internal:
26 ::FK::fk_Ray * GetP(void);
27
28 public:
30
33 fk_Ray();
34
35#if !defined(FK_DOXYGEN_USER_PROCESS)
36 fk_Ray(bool);
37#endif
39
47 fk_Ray(fk_Vector^ S, fk_Vector^ E);
48
50 ~fk_Ray();
51
53 !fk_Ray();
54
56
61 String^ ToString() override;
62
64
67 property fk_Vector^ Start {
68 fk_Vector^ get();
69 void set(fk_Vector^);
70 }
71
73
76 property fk_Vector^ End {
77 fk_Vector^ get();
78 void set(fk_Vector^);
79 }
80
82
90 property fk_LineType Type {
91 fk_LineType get();
92 void set(fk_LineType);
93 }
94
96 /*
97 * 光線モデルを取得します。
98 * ここで得られるモデルインスタンスをウィンドウやシーンに登録することにより、
99 * 光線を描画することが可能です。
100 * また、 fk_Model クラスが持つ様々な機能を用いることや、
101 * 他のモデルと親子関係を構築することもできます。
102 */
103 property fk_Model^ Model {
104 fk_Model^ get();
105 }
106
108
111 property fk_Color^ Color {
112 fk_Color^ get();
113 void set(fk_Color^);
114 }
115
117
122 property double Scale {
123 double get();
124 void set(double);
125 }
126
128
137 bool Set(fk_Vector^ S, fk_Vector^ E);
138
140
145 Tuple<fk_Vector^, fk_Vector^>^ Get(void);
146
148
157 bool IsInter(fk_Model^ model);
158
160
175 Tuple<bool, double>^ GetInter(fk_Model^ model);
176
178
192 fk_Vector^ GetPos(double t);
193
195
201 void SetParent(fk_Model^ model);
202
204
213 void EntryModel(fk_Model^ model);
214
216
223 void RemoveModel(fk_Model^ model);
224
226
241
242 List<Tuple<fk_Model^, double>^>^ GetInterList(bool sort);
243
244 private:
245 static fk_LineType Conv(::FK::fk_LineType);
246 static ::FK::fk_LineType Conv(fk_LineType);
247 };
248}
249
250/****************************************************************************
251 *
252 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
253 *
254 * Redistribution and use in source and binary forms,
255 * with or without modification, are permitted provided that the
256 * following conditions are met:
257 *
258 * - Redistributions of source code must retain the above
259 * copyright notice, this list of conditions and the
260 * following disclaimer.
261 *
262 * - Redistributions in binary form must reproduce the above
263 * copyright notice, this list of conditions and the
264 * following disclaimer in the documentation and/or
265 * other materials provided with the distribution.
266 *
267 * - Neither the name of the copyright holders nor the names
268 * of its contributors may be used to endorse or promote
269 * products derived from this software without specific
270 * prior written permission.
271 *
272 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
273 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
274 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
275 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
276 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
277 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
278 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
279 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
280 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
281 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
282 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
283 * POSSIBILITY OF SUCH DAMAGE.
284 *
285 ****************************************************************************/
286/****************************************************************************
287 *
288 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
289 *
290 * 本ソフトウェアおよびソースコードのライセンスは、基本的に
291 * 「修正 BSD ライセンス」に従います。以下にその詳細を記します。
292 *
293 * ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
294 * 以下の条件を満たす場合に限り、再頒布および使用が許可されます。
295 *
296 * - ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、
297 * および下記免責条項を含めること。
298 *
299 * - バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の
300 * 資料に、上記の著作権表示、本条件一覧、および下記免責条項を
301 * 含めること。
302 *
303 * - 書面による特別の許可なしに、本ソフトウェアから派生した製品の
304 * 宣伝または販売促進に、本ソフトウェアの著作権者の名前または
305 * コントリビューターの名前を使用してはならない。
306 *
307 * 本ソフトウェアは、著作権者およびコントリビューターによって「現
308 * 状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、
309 * および特定の目的に対する適合性に関す暗黙の保証も含め、またそれ
310 * に限定されない、いかなる保証もないものとします。著作権者もコン
311 * トリビューターも、事由のいかんを問わず、損害発生の原因いかんを
312 * 問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その
313 * 他の)不法行為であるかを問わず、仮にそのような損害が発生する可
314 * 能性を知らされていたとしても、本ソフトウェアの使用によって発生
315 * した(代替品または代用サービスの調達、使用の喪失、データの喪失、
316 * 利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、
317 * 間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害に
318 * ついて、一切責任を負わないものとします。
319 *
320 ****************************************************************************/
Math_CLI.h
Model_CLI.h
FK_CLI::fk_BaseObject
FK の各クラスの基盤となる基本クラス
Definition Base_CLI.h:104
FK_CLI::fk_Model
モデルを生成、管理するクラス
Definition Model_CLI.h:140
FK_CLI::fk_Ray::Model
fk_Model^ Model
モデルインスタンスプロパティ
Definition Ray_CLI.h:103
FK_CLI::fk_Ray::Color
fk_Color^ Color
光線色プロパティ
Definition Ray_CLI.h:111
FK_CLI::fk_Ray::fk_Ray
fk_Ray()
コンストラクタ1
FK_CLI::fk_Ray::RemoveModel
void RemoveModel(fk_Model^ model)
干渉判定対称モデル解除メソッド
FK_CLI::fk_Ray::~fk_Ray
~fk_Ray()
デストラクタ
FK_CLI::fk_Ray::GetInter
Tuple< bool, double > ^ GetInter(fk_Model^ model)
干渉位置取得メソッド
FK_CLI::fk_Ray::GetPos
fk_Vector ^ GetPos(double t)
光線位置ベクトル取得メソッド
FK_CLI::fk_Ray::Scale
double Scale
直線・半直線延長率プロパティ
Definition Ray_CLI.h:122
FK_CLI::fk_Ray::fk_Ray
fk_Ray(fk_Vector^ S, fk_Vector^ E)
コンストラクタ2
FK_CLI::fk_Ray::Get
Tuple< fk_Vector^, fk_Vector^> ^ Get(void)
端点取得メソッド
FK_CLI::fk_Ray::GetInterList
List< Tuple< fk_Model^, double >^> ^ GetInterList(bool sort)
一括干渉判定メソッド
FK_CLI::fk_Ray::Start
fk_Vector^ Start
始点プロパティ
Definition Ray_CLI.h:67
FK_CLI::fk_Ray::Type
fk_LineType Type
直線群種類プロパティ
Definition Ray_CLI.h:90
FK_CLI::fk_Ray::End
fk_Vector^ End
終点プロパティ
Definition Ray_CLI.h:76
FK_CLI::fk_Ray::IsInter
bool IsInter(fk_Model^ model)
干渉状態取得メソッド
FK_CLI::fk_Ray::SetParent
void SetParent(fk_Model^ model)
親モデル設定メソッド
FK_CLI::fk_Ray::ToString
String ^ ToString() override
文字列出力メソッド
FK_CLI::fk_Ray::Set
bool Set(fk_Vector^ S, fk_Vector^ E)
端点設定メソッド
FK_CLI::fk_Ray::EntryModel
void EntryModel(fk_Model^ model)
干渉判定対象モデル登録メソッド
FK_CLI::fk_Vector
3次元ベクトルを管理するクラス
Definition Vector_CLI.h:35
FK_CLI
Definition AppWindow_CLI.h:11
FK_CLI::fk_LineType
fk_LineType
fk_Math クラス内での直線群タイプを表す列挙型
Definition Math_CLI.h:11