FineKernelToolKit  3.1.0
Plane_CLI.h
[詳解]
1 // Quaternion_CLI.h
2 
3 #pragma once
4 
5 #include <FK/Plane.h>
6 #include "Vector_CLI.h"
7 
8 namespace FK_CLI
9 {
10  using namespace System;
11 
13 
31  public ref class fk_Plane {
32  internal:
33  ::fk_Plane *pPlane;
34 
35  public:
36 #ifndef FK_DOXYGEN_USER_PROCESS
37  fk_Plane(::fk_Plane *argP);
38 #endif
39  fk_Plane();
41 
43  fk_Plane(fk_Plane^ P);
44 
46  ~fk_Plane();
47 
49  !fk_Plane();
50 
52 
57  String^ ToString() override;
58 
60 
63  property fk_Vector^ BasePos {
64  fk_Vector^ get();
65  }
66 
68 
71  property fk_Vector^ UVec {
72  fk_Vector^ get();
73  }
74 
76 
79  property fk_Vector^ VVec {
80  fk_Vector^ get();
81  }
82 
84 
87  property fk_Vector^ Normal {
88  fk_Vector^ get();
89  }
90 
92 
95  property double Dist {
96  double get();
97  }
98 
99 
101 
111  bool SetPosNormal(fk_Vector^ pos, fk_Vector^ norm);
112 
114 
127  bool Set3Pos(fk_Vector^ pos1,
128  fk_Vector^ pos2,
129  fk_Vector^ pos3);
130 
132 
144  bool SetPosUVVec(fk_Vector ^pos,
145  fk_Vector ^U,
146  fk_Vector ^V);
147 
149 
156  double GetDist(fk_Vector^ pos);
157 
159 
167  fk_Vector^ GetPos(double u, double v);
168 
170 
178  bool IsParallel(fk_Vector^ V);
179 
180  // 平面平行判定メソッド
188  bool IsParallel(fk_Plane^ P);
189 
191 
199  bool IsVertical(fk_Vector^ V);
200 
201  // 平面垂直判定メソッド
209  bool IsVertical(fk_Plane^ P);
210 
212 
223  bool CalcCrossPos(fk_Vector^ A,
224  fk_Vector^ B,
225  fk_Vector^ pos);
226 
228 
243  bool CalcCrossLineParam(fk_Vector^ A,
244  fk_Vector^ B,
245  double %t);
246 
248 
261  bool CalcCrossPlaneParam(fk_Vector^ A,
262  fk_Vector^ B,
263  double %u, double %v);
264 
266 
285  bool CalcCrossAll(fk_Vector^ A,
286  fk_Vector^ B,
287  fk_Vector^ pos,
288  double %t, double %u, double %v);
289 
290  };
291 }
292 
293 /****************************************************************************
294  *
295  * Copyright (c) 1999-2016, Fine Kernel Project, All rights reserved.
296  *
297  * Redistribution and use in source and binary forms,
298  * with or without modification, are permitted provided that the
299  * following conditions are met:
300  *
301  * - Redistributions of source code must retain the above
302  * copyright notice, this list of conditions and the
303  * following disclaimer.
304  *
305  * - Redistributions in binary form must reproduce the above
306  * copyright notice, this list of conditions and the
307  * following disclaimer in the documentation and/or
308  * other materials provided with the distribution.
309  *
310  * - Neither the name of the copyright holders nor the names
311  * of its contributors may be used to endorse or promote
312  * products derived from this software without specific
313  * prior written permission.
314  *
315  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
316  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
317  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
318  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
319  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
320  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
321  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
322  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
323  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
324  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
325  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
326  * POSSIBILITY OF SUCH DAMAGE.
327  *
328  ****************************************************************************/
329 /****************************************************************************
330  *
331  * Copyright (c) 1999-2016, Fine Kernel Project, All rights reserved.
332  *
333  * 本ソフトウェアおよびソースコードのライセンスは、基本的に
334  * 「修正 BSD ライセンス」に従います。以下にその詳細を記します。
335  *
336  * ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
337  * 以下の条件を満たす場合に限り、再頒布および使用が許可されます。
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  ****************************************************************************/
3次元ベクトルを管理するクラス
Definition: Vector_CLI.h:37
幾何平面を管理するクラス
Definition: Plane_CLI.h:31
Definition: AppWindow_CLI.h:11