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

FineKernelToolKit 4.3.0

読み取り中…
検索中…
一致する文字列を見つけられません
Plane_CLI.h
[詳解]
1#pragma once
2
3#include <FK/Plane.h>
4#include "Vector_CLI.h"
5
6namespace FK_CLI
7{
8 using namespace System;
9
11
33
34 public ref class fk_Plane {
35 internal:
36 ::FK::fk_Plane *pPlane;
37
38 public:
39#if !defined(FK_DOXYGEN_USER_PROCESS)
40 fk_Plane(::FK::fk_Plane *argP);
41#endif
43 fk_Plane();
44
46 fk_Plane(fk_Plane^ P);
47
49 ~fk_Plane();
50
52 !fk_Plane();
53
55
60 String^ ToString() override;
61
63
66 property fk_Vector^ BasePos {
67 fk_Vector^ get();
68 }
69
71
74 property fk_Vector^ UVec {
75 fk_Vector^ get();
76 }
77
79
82 property fk_Vector^ VVec {
83 fk_Vector^ get();
84 }
85
87
90 property fk_Vector^ Normal {
91 fk_Vector^ get();
92 }
93
95
98 property double Dist {
99 double get();
100 }
101
102
104
114 bool SetPosNormal(fk_Vector^ pos, fk_Vector^ norm);
115
117
130 bool Set3Pos(fk_Vector^ pos1,
131 fk_Vector^ pos2,
132 fk_Vector^ pos3);
133
135
147 bool SetPosUVVec(fk_Vector ^pos,
148 fk_Vector ^U,
149 fk_Vector ^V);
150
152
159 double GetDist(fk_Vector^ pos);
160
162
170 fk_Vector^ GetPos(double u, double v);
171
173
181 bool IsParallel(fk_Vector^ V);
182
183 // 平面平行判定メソッド
191 bool IsParallel(fk_Plane^ P);
192
194
202 bool IsVertical(fk_Vector^ V);
203
204 // 平面垂直判定メソッド
212 bool IsVertical(fk_Plane^ P);
213
215
226 bool CalcCrossPos(fk_Vector^ A,
227 fk_Vector^ B,
228 fk_Vector^ pos);
229
231
246 bool CalcCrossLineParam(fk_Vector^ A,
247 fk_Vector^ B,
248 double %t);
249
251
264 bool CalcCrossPlaneParam(fk_Vector^ A,
265 fk_Vector^ B,
266 double %u, double %v);
267
269
288 bool CalcCrossAll(fk_Vector^ A,
289 fk_Vector^ B,
290 fk_Vector^ pos,
291 double %t, double %u, double %v);
292
293 };
294}
295
296/****************************************************************************
297 *
298 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
299 *
300 * Redistribution and use in source and binary forms,
301 * with or without modification, are permitted provided that the
302 * following conditions are met:
303 *
304 * - Redistributions of source code must retain the above
305 * copyright notice, this list of conditions and the
306 * following disclaimer.
307 *
308 * - Redistributions in binary form must reproduce the above
309 * copyright notice, this list of conditions and the
310 * following disclaimer in the documentation and/or
311 * other materials provided with the distribution.
312 *
313 * - Neither the name of the copyright holders nor the names
314 * of its contributors may be used to endorse or promote
315 * products derived from this software without specific
316 * prior written permission.
317 *
318 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
319 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
320 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
321 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
322 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
323 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
324 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
325 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
326 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
327 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
328 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
329 * POSSIBILITY OF SUCH DAMAGE.
330 *
331 ****************************************************************************/
332/****************************************************************************
333 *
334 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
335 *
336 * 本ソフトウェアおよびソースコードのライセンスは、基本的に
337 * 「修正 BSD ライセンス」に従います。以下にその詳細を記します。
338 *
339 * ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
340 * 以下の条件を満たす場合に限り、再頒布および使用が許可されます。
341 *
342 * - ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、
343 * および下記免責条項を含めること。
344 *
345 * - バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の
346 * 資料に、上記の著作権表示、本条件一覧、および下記免責条項を
347 * 含めること。
348 *
349 * - 書面による特別の許可なしに、本ソフトウェアから派生した製品の
350 * 宣伝または販売促進に、本ソフトウェアの著作権者の名前または
351 * コントリビューターの名前を使用してはならない。
352 *
353 * 本ソフトウェアは、著作権者およびコントリビューターによって「現
354 * 状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、
355 * および特定の目的に対する適合性に関す暗黙の保証も含め、またそれ
356 * に限定されない、いかなる保証もないものとします。著作権者もコン
357 * トリビューターも、事由のいかんを問わず、損害発生の原因いかんを
358 * 問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その
359 * 他の)不法行為であるかを問わず、仮にそのような損害が発生する可
360 * 能性を知らされていたとしても、本ソフトウェアの使用によって発生
361 * した(代替品または代用サービスの調達、使用の喪失、データの喪失、
362 * 利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、
363 * 間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害に
364 * ついて、一切責任を負わないものとします。
365 *
366 ****************************************************************************/
Vector_CLI.h
FK_CLI::fk_Plane::IsVertical
bool IsVertical(fk_Vector^ V)
ベクトル垂直判定メソッド
FK_CLI::fk_Plane::IsParallel
bool IsParallel(fk_Vector^ V)
ベクトル平行判定メソッド
FK_CLI::fk_Plane::~fk_Plane
~fk_Plane()
デストラクタ
FK_CLI::fk_Plane::VVec
fk_Vector^ VVec
Vベクトルプロパティ
Definition Plane_CLI.h:82
FK_CLI::fk_Plane::CalcCrossAll
bool CalcCrossAll(fk_Vector^ A, fk_Vector^ B, fk_Vector^ pos, double % t, double % u, double % v)
交点情報参照メソッド
FK_CLI::fk_Plane::Normal
fk_Vector^ Normal
法線ベクトルプロパティ
Definition Plane_CLI.h:90
FK_CLI::fk_Plane::CalcCrossPlaneParam
bool CalcCrossPlaneParam(fk_Vector^ A, fk_Vector^ B, double % u, double % v)
交点平面パラメータ参照メソッド
FK_CLI::fk_Plane::IsVertical
bool IsVertical(fk_Plane^ P)
FK_CLI::fk_Plane::CalcCrossLineParam
bool CalcCrossLineParam(fk_Vector^ A, fk_Vector^ B, double % t)
交点直線パラメータ参照メソッド
FK_CLI::fk_Plane::UVec
fk_Vector^ UVec
Uベクトルプロパティ
Definition Plane_CLI.h:74
FK_CLI::fk_Plane::IsParallel
bool IsParallel(fk_Plane^ P)
FK_CLI::fk_Plane::SetPosUVVec
bool SetPosUVVec(fk_Vector ^ pos, fk_Vector ^ U, fk_Vector ^ V)
平面設定メソッド3
FK_CLI::fk_Plane::fk_Plane
fk_Plane(fk_Plane^ P)
コピーコンストラクタ
FK_CLI::fk_Plane::GetDist
double GetDist(fk_Vector^ pos)
任意点距離参照メソッド
FK_CLI::fk_Plane::ToString
String ^ ToString() override
文字列出力メソッド
FK_CLI::fk_Plane::CalcCrossPos
bool CalcCrossPos(fk_Vector^ A, fk_Vector^ B, fk_Vector^ pos)
交点位置ベクトル参照メソッド
FK_CLI::fk_Plane::fk_Plane
fk_Plane()
コンストラクタ
FK_CLI::fk_Plane::BasePos
fk_Vector^ BasePos
基点ベクトルプロパティ
Definition Plane_CLI.h:66
FK_CLI::fk_Plane::Dist
double Dist
原点距離参照メソッド
Definition Plane_CLI.h:98
FK_CLI::fk_Plane::GetPos
fk_Vector ^ GetPos(double u, double v)
u,v パラメータによる平面上点参照メソッド
FK_CLI::fk_Plane::SetPosNormal
bool SetPosNormal(fk_Vector^ pos, fk_Vector^ norm)
平面設定メソッド1
FK_CLI::fk_Plane::Set3Pos
bool Set3Pos(fk_Vector^ pos1, fk_Vector^ pos2, fk_Vector^ pos3)
平面設定メソッド2
FK_CLI::fk_Vector
3次元ベクトルを管理するクラス
Definition Vector_CLI.h:35
FK_CLI
Definition AppWindow_CLI.h:11