FineKernelToolKit 3.1.0

- 総合概要
- 名前空間
- クラス
- ファイル

- ファイル一覧

Math_CLI.h
[詳解]
1 // Math_CLI.h
2
3 #pragma once
4
5 #include <FK/Math.h>
6 #include "Quaternion_CLI.h"
7
8 namespace FK_CLI
9 {
10 using namespace System;
11
13
26 public ref class fk_Math {
27 public:
28
30
31
33
45 static double Clamp(double a, double min, double max);
47
49
50
69 static bool IsOnLine(fk_Vector^ A, fk_Vector^ B, fk_Vector^ P);
70
72
96 static bool IsOnLineSegment(fk_Vector^ A, fk_Vector^ B, fk_Vector^ P, bool openFlg);
97
99
121 static bool IsOnLineSegment(fk_Vector^ A, fk_Vector^ B, fk_Vector^ P);
122
124
141 static bool IsCrossLine(fk_Vector^ A, fk_Vector^ B, fk_Vector^ C, fk_Vector^ D);
142
144
172 static bool IsCrossLineSegment(fk_Vector^ A, fk_Vector^ B,
173 fk_Vector^ C, fk_Vector^ D, bool openFlg);
174
176
202 static bool IsCrossLineSegment(fk_Vector^ A, fk_Vector^ B, fk_Vector^ C, fk_Vector^ D);
203
205
225 static double CalcClosestPtSegToSeg(fk_Vector^ A, fk_Vector^ B, fk_Vector^ C, fk_Vector^ D,
226 double %s, double %t, fk_Vector^ P, fk_Vector^ Q);
227
229
239 static void CalcClosestPtPtToSeg(fk_Vector^ C, fk_Vector^ A, fk_Vector^ B,
240 double %t, fk_Vector^ P);
241
243
278 static bool CalcCrossLineAndTri(fk_Vector^ P, fk_Vector^ Q, fk_Vector^ A, fk_Vector^ B,
279 fk_Vector^ C, fk_Vector^ R);
280
282
305 static bool CalcCrossLineAndTri(fk_Vector^ P, fk_Vector^ Q,
306 fk_Vector^ A, fk_Vector^ B, fk_Vector^ C);
307
309
321 static double CalcCosine(fk_Vector^ A, fk_Vector^ B);
322
323
325
348 static fk_Vector^ DivideVec(fk_Vector^ V, fk_Vector^ A, fk_Vector^ B, fk_Vector^ C);
350
352
353
355
384 static fk_Quaternion^ QuatInterLinear(fk_Quaternion^ Q1,
385 fk_Quaternion^ Q2,
386 double t);
387
389
420 static fk_Quaternion^ QuatInterSphere(fk_Quaternion^ Q1,
421 fk_Quaternion^ Q2,
422 double t);
424 };
425 }
426
427 /****************************************************************************
428 *
429 * Copyright (c) 1999-2016, Fine Kernel Project, All rights reserved.
430 *
431 * Redistribution and use in source and binary forms,
432 * with or without modification, are permitted provided that the
433 * following conditions are met:
434 *
435 * - Redistributions of source code must retain the above
436 * copyright notice, this list of conditions and the
437 * following disclaimer.
438 *
439 * - Redistributions in binary form must reproduce the above
440 * copyright notice, this list of conditions and the
441 * following disclaimer in the documentation and/or
442 * other materials provided with the distribution.
443 *
444 * - Neither the name of the copyright holders nor the names
445 * of its contributors may be used to endorse or promote
446 * products derived from this software without specific
447 * prior written permission.
448 *
449 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
450 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
451 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
452 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
453 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
454 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
455 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
456 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
457 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
458 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
459 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
460 * POSSIBILITY OF SUCH DAMAGE.
461 *
462 ****************************************************************************/
463 /****************************************************************************
464 *
465 * Copyright (c) 1999-2016, Fine Kernel Project, All rights reserved.
466 *
467 * 本ソフトウェアおよびソースコードのライセンスは、基本的に
468 * 「修正 BSD ライセンス」に従います。以下にその詳細を記します。
469 *
470 * ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
471 * 以下の条件を満たす場合に限り、再頒布および使用が許可されます。
472 *
473 * - ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、
474 * および下記免責条項を含めること。
475 *
476 * - バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の
477 * 資料に、上記の著作権表示、本条件一覧、および下記免責条項を
478 * 含めること。
479 *
480 * - 書面による特別の許可なしに、本ソフトウェアから派生した製品の
481 * 宣伝または販売促進に、本ソフトウェアの著作権者の名前または
482 * コントリビューターの名前を使用してはならない。
483 *
484 * 本ソフトウェアは、著作権者およびコントリビューターによって「現
485 * 状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、
486 * および特定の目的に対する適合性に関す暗黙の保証も含め、またそれ
487 * に限定されない、いかなる保証もないものとします。著作権者もコン
488 * トリビューターも、事由のいかんを問わず、損害発生の原因いかんを
489 * 問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その
490 * 他の)不法行為であるかを問わず、仮にそのような損害が発生する可
491 * 能性を知らされていたとしても、本ソフトウェアの使用によって発生
492 * した(代替品または代用サービスの調達、使用の喪失、データの喪失、
493 * 利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、
494 * 間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害に
495 * ついて、一切責任を負わないものとします。
496 *
497 ****************************************************************************/
FK_CLI::fk_Quaternion
四元数(クォータニオン)を管理するクラス
Definition: Quaternion_CLI.h:41
FK_CLI::fk_Vector
3次元ベクトルを管理するクラス
Definition: Vector_CLI.h:37
System
FK_CLI::fk_Math
数学処理メソッド集合クラス
Definition: Math_CLI.h:26
Quaternion_CLI.h
FK_CLI
Definition: AppWindow_CLI.h:11