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

FineKernelToolKit 4.3.0

読み取り中…
検索中…
一致する文字列を見つけられません
Vector_CLI.h
[詳解]
1#pragma once
2
3#include <FK/Vector.h>
4
5namespace FK_CLI
6{
7 using namespace System;
8
10 public enum class fk_Axis {
11 X,
12 Y,
13 Z
14 };
15
17
34
35 public ref class fk_Vector {
36
37 internal:
38 //::fk_Vector *pVec;
39 double x_, y_, z_;
40
41 static ::FK::fk_Axis GetAxis(fk_Axis);
42 static operator ::FK::fk_Vector(fk_Vector^argV);
43
44 public:
45
47
50 fk_Vector();
51
53
58 fk_Vector(double x, double y, double z);
59
61
65 fk_Vector(double x, double y);
66
68
71 fk_Vector(double x);
72
74
79 fk_Vector(fk_Vector^ V);
80
81#if !defined(FK_DOXYGEN_USER_PROCESS)
82 fk_Vector(::FK::fk_Vector *);
83 fk_Vector(::FK::fk_Vector);
84#endif
85
86 // デストラクタ
87 ~fk_Vector();
88
90
95 property double x {
96 double get();
97 void set(double);
98 }
99
101
106 property double y {
107 double get();
108 void set(double);
109 }
110
112
117 property double z {
118 double get();
119 void set(double);
120 }
121
124
126
131 static fk_Vector^ operator-(fk_Vector^);
132
134
137
139
154 static double operator*(fk_Vector^, fk_Vector^);
155
157
165 static fk_Vector^ operator+(fk_Vector^, fk_Vector^);
166
168
176 static fk_Vector^ operator-(fk_Vector^, fk_Vector^);
177
179
187 static fk_Vector^ operator*(fk_Vector^, double);
188
190
198 static fk_Vector^ operator*(double, fk_Vector^);
199
201
207 static fk_Vector^ operator/(fk_Vector^, double);
208
210
238 static fk_Vector^ operator^(fk_Vector^, fk_Vector^);
239
241
244
246
256 static void operator *= (fk_Vector^, double);
257
259
271 static void operator /= (fk_Vector^, double);
272
274
284 static void operator += (fk_Vector^, fk_Vector^);
285
287
297 static void operator -= (fk_Vector^, fk_Vector^);
298
300
302
311 bool Equals(fk_Vector^ V);
312
314
323 virtual bool Equals(Object^ V) override;
324
326
331 String^ ToString() override;
332
334
341 void Set(double x, double y, double z);
342
344
350 void Set(double x, double y);
351
353
358 void Set(double x);
359
361
370 double Dist();
371
373
384 double Dist2();
385
387
401 bool Normalize();
402
404
407 bool IsZero();
408
410
428 fk_Vector^ Proj(fk_Vector^ Q);
429
430
432
443 fk_Vector^ Perp(fk_Vector^ Q);
444
445
447
450 void Init(void);
451 };
452
454
465 public ref class fk_HVector {
466 internal:
467 double x_, y_, z_, w_;
468 static operator ::FK::fk_HVector (fk_HVector^);
469
470 public:
471#if !defined(FK_DOXYGEN_USER_PROCESS)
472 fk_HVector(::FK::fk_HVector);
473#endif
474
476
479 fk_HVector();
480
482
487 fk_HVector(fk_Vector^ V);
488
490
497 fk_HVector(fk_Vector^ V, double w);
498
500
505 fk_HVector(fk_HVector^ H);
506
508 ~fk_HVector();
509
511
516 property double x {
517 double get();
518 void set(double);
519 }
520
522
527 property double y {
528 double get();
529 void set(double);
530 }
531
533
538 property double z {
539 double get();
540 void set(double);
541 }
542
544
549 property double w {
550 double get();
551 void set(double);
552 }
553
555
570 static double operator* (fk_HVector^, fk_HVector^);
571
573
585 static operator fk_HVector^ (fk_Vector^ V);
586
588
598 static operator fk_Vector^ (fk_HVector^ H);
599
601
610 bool Equals(fk_HVector^ H);
611
613
622 virtual bool Equals(Object^ H) override;
623
625
630 String^ ToString() override;
631
633
639 void Set(fk_Vector^ V, double w);
640
642
650 void Set(double x, double y, double z, double w);
651
653
660 void Set(double x, double y, double z);
661
663
669 void Set(double x, double y);
670
672
677 void Set(double x);
678
680
685 void Set(fk_Vector^ V);
686
688
693 fk_Vector^ GetV(void);
694
696
700 void IsPos(void);
701
703
707 void IsVec(void);
708
710
713 void Init(void);
714 };
715
717
731 public ref class fk_FVector {
732 internal:
733 float x_, y_, z_;
734 public:
735
737
740 fk_FVector();
741
743
748 fk_FVector(float x, float y, float z);
749
751
756 fk_FVector(fk_FVector^ F);
757
759 ~fk_FVector();
760
762
772 static operator fk_FVector ^ (fk_Vector^ V);
773
775
780 String^ ToString() override;
781
783
788 property float x {
789 float get();
790 void set(float);
791 }
792
794
799 property float y {
800 float get();
801 void set(float);
802 }
803
805
810 property float z {
811 float get();
812 void set(float);
813 }
814 };
815}
816
817/****************************************************************************
818 *
819 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
820 *
821 * Redistribution and use in source and binary forms,
822 * with or without modification, are permitted provided that the
823 * following conditions are met:
824 *
825 * - Redistributions of source code must retain the above
826 * copyright notice, this list of conditions and the
827 * following disclaimer.
828 *
829 * - Redistributions in binary form must reproduce the above
830 * copyright notice, this list of conditions and the
831 * following disclaimer in the documentation and/or
832 * other materials provided with the distribution.
833 *
834 * - Neither the name of the copyright holders nor the names
835 * of its contributors may be used to endorse or promote
836 * products derived from this software without specific
837 * prior written permission.
838 *
839 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
840 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
841 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
842 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
843 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
844 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
845 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
846 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
847 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
848 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
849 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
850 * POSSIBILITY OF SUCH DAMAGE.
851 *
852 ****************************************************************************/
853/****************************************************************************
854 *
855 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
856 *
857 * 本ソフトウェアおよびソースコードのライセンスは、基本的に
858 * 「修正 BSD ライセンス」に従います。以下にその詳細を記します。
859 *
860 * ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
861 * 以下の条件を満たす場合に限り、再頒布および使用が許可されます。
862 *
863 * - ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、
864 * および下記免責条項を含めること。
865 *
866 * - バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の
867 * 資料に、上記の著作権表示、本条件一覧、および下記免責条項を
868 * 含めること。
869 *
870 * - 書面による特別の許可なしに、本ソフトウェアから派生した製品の
871 * 宣伝または販売促進に、本ソフトウェアの著作権者の名前または
872 * コントリビューターの名前を使用してはならない。
873 *
874 * 本ソフトウェアは、著作権者およびコントリビューターによって「現
875 * 状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、
876 * および特定の目的に対する適合性に関す暗黙の保証も含め、またそれ
877 * に限定されない、いかなる保証もないものとします。著作権者もコン
878 * トリビューターも、事由のいかんを問わず、損害発生の原因いかんを
879 * 問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その
880 * 他の)不法行為であるかを問わず、仮にそのような損害が発生する可
881 * 能性を知らされていたとしても、本ソフトウェアの使用によって発生
882 * した(代替品または代用サービスの調達、使用の喪失、データの喪失、
883 * 利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、
884 * 間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害に
885 * ついて、一切責任を負わないものとします。
886 *
887 ****************************************************************************/
FK_CLI::fk_FVector::y
float y
y成分プロパティ
Definition Vector_CLI.h:799
FK_CLI::fk_FVector::ToString
String ^ ToString() override
文字列出力メソッド
FK_CLI::fk_FVector::fk_FVector
fk_FVector(fk_FVector^ F)
コンストラクタ3
FK_CLI::fk_FVector::~fk_FVector
~fk_FVector()
デストラクタ
FK_CLI::fk_FVector::fk_FVector
fk_FVector(float x, float y, float z)
コンストラクタ2
FK_CLI::fk_FVector::z
float z
z成分プロパティ
Definition Vector_CLI.h:810
FK_CLI::fk_FVector::fk_FVector
fk_FVector()
コンストラクタ1
FK_CLI::fk_FVector::x
float x
x成分プロパティ
Definition Vector_CLI.h:788
FK_CLI::fk_HVector::Init
void Init(void)
初期化メソッド
FK_CLI::fk_HVector::Set
void Set(fk_Vector^ V)
成分設定メソッド6
FK_CLI::fk_HVector::operator*
static double operator*(fk_HVector^, fk_HVector^)
内積二項演算子
FK_CLI::fk_HVector::IsPos
void IsPos(void)
位置ベクトル設定メソッド
FK_CLI::fk_HVector::z
double z
z成分プロパティ
Definition Vector_CLI.h:538
FK_CLI::fk_HVector::y
double y
y成分プロパティ
Definition Vector_CLI.h:527
FK_CLI::fk_HVector::Set
void Set(double x, double y, double z)
成分設定メソッド4
FK_CLI::fk_HVector::IsVec
void IsVec(void)
方向ベクトル設定メソッド
FK_CLI::fk_HVector::Equals
virtual bool Equals(Object^ H) override
同値比較メソッド2
FK_CLI::fk_HVector::~fk_HVector
~fk_HVector()
デストラクタ
FK_CLI::fk_HVector::fk_HVector
fk_HVector()
コンストラクタ1
FK_CLI::fk_HVector::fk_HVector
fk_HVector(fk_HVector^ H)
コンストラクタ4
FK_CLI::fk_HVector::GetV
fk_Vector ^ GetV(void)
3次元ベクトル抽出メソッド
FK_CLI::fk_HVector::fk_HVector
fk_HVector(fk_Vector^ V)
コンストラクタ2
FK_CLI::fk_HVector::fk_HVector
fk_HVector(fk_Vector^ V, double w)
コンストラクタ3
FK_CLI::fk_HVector::Set
void Set(double x, double y)
成分設定メソッド5
FK_CLI::fk_HVector::w
double w
ベクトルの同次座標成分
Definition Vector_CLI.h:549
FK_CLI::fk_HVector::Set
void Set(double x, double y, double z, double w)
成分設定メソッド3
FK_CLI::fk_HVector::Set
void Set(fk_Vector^ V, double w)
成分設定メソッド1
FK_CLI::fk_HVector::ToString
String ^ ToString() override
文字列出力メソッド
FK_CLI::fk_HVector::Set
void Set(double x)
成分設定メソッド5
FK_CLI::fk_HVector::x
double x
x成分プロパティ
Definition Vector_CLI.h:516
FK_CLI::fk_HVector::Equals
bool Equals(fk_HVector^ H)
同値比較メソッド1
FK_CLI::fk_Vector
3次元ベクトルを管理するクラス
Definition Vector_CLI.h:35
FK_CLI::fk_Vector::z
double z
z成分プロパティ
Definition Vector_CLI.h:117
FK_CLI::fk_Vector::operator+=
static void operator+=(fk_Vector^, fk_Vector^)
単項和代入演算子
FK_CLI::fk_Vector::fk_Vector
fk_Vector()
コンストラクタ1
FK_CLI::fk_Vector::Init
void Init(void)
初期化メソッド
FK_CLI::fk_Vector::fk_Vector
fk_Vector(double x, double y, double z)
コンストラクタ2
FK_CLI::fk_Vector::Dist
double Dist()
ベクトル長さ算出メソッド
FK_CLI::fk_Vector::Set
void Set(double x, double y, double z)
成分設定メソッド1
FK_CLI::fk_Vector::operator-
static fk_Vector ^ operator-(fk_Vector^)
単項マイナス演算子
FK_CLI::fk_Vector::operator*
static fk_Vector ^ operator*(double, fk_Vector^)
実数倍二項演算子2
FK_CLI::fk_Vector::Normalize
bool Normalize()
正規化メソッド
FK_CLI::fk_Vector::Set
void Set(double x)
成分設定メソッド3
FK_CLI::fk_Vector::operator*=
static void operator*=(fk_Vector^, double)
実数積代入演算子
FK_CLI::fk_Vector::y
double y
y成分プロパティ
Definition Vector_CLI.h:106
FK_CLI::fk_Vector::fk_Vector
fk_Vector(fk_Vector^ V)
コンストラクタ3
FK_CLI::fk_Vector::Equals
bool Equals(fk_Vector^ V)
同値比較メソッド1
FK_CLI::fk_Vector::operator/
static fk_Vector ^ operator/(fk_Vector^, double)
実数商二項演算子
FK_CLI::fk_Vector::Perp
fk_Vector ^ Perp(fk_Vector^ Q)
射影垂直成分ベクトル算出メソッド
FK_CLI::fk_Vector::~fk_Vector
~fk_Vector()
FK_CLI::fk_Vector::Proj
fk_Vector ^ Proj(fk_Vector^ Q)
射影ベクトル算出メソッド
FK_CLI::fk_Vector::operator/=
static void operator/=(fk_Vector^, double)
実数商代入演算子
FK_CLI::fk_Vector::IsZero
bool IsZero()
零ベクトル判定メソッド
FK_CLI::fk_Vector::Equals
virtual bool Equals(Object^ V) override
同値比較メソッド2
FK_CLI::fk_Vector::Dist2
double Dist2()
ベクトル長さ平方算出メソッド
FK_CLI::fk_Vector::fk_Vector
fk_Vector(double x)
コンストラクタ
FK_CLI::fk_Vector::operator-=
static void operator-=(fk_Vector^, fk_Vector^)
単項差代入演算子
FK_CLI::fk_Vector::Set
void Set(double x, double y)
成分設定メソッド2
FK_CLI::fk_Vector::operator^
static fk_Vector ^ operator^(fk_Vector^, fk_Vector^)
外積二項演算子
FK_CLI::fk_Vector::x
double x
x成分プロパティ
Definition Vector_CLI.h:95
FK_CLI::fk_Vector::operator*
static fk_Vector ^ operator*(fk_Vector^, double)
実数倍二項演算子1
FK_CLI::fk_Vector::operator*
static double operator*(fk_Vector^, fk_Vector^)
内積二項演算子
FK_CLI::fk_Vector::operator+
static fk_Vector ^ operator+(fk_Vector^, fk_Vector^)
ベクトル和二項演算子
FK_CLI::fk_Vector::operator-
static fk_Vector ^ operator-(fk_Vector^, fk_Vector^)
ベクトル差二項演算子
FK_CLI::fk_Vector::ToString
String ^ ToString() override
文字列出力メソッド
FK_CLI::fk_Vector::fk_Vector
fk_Vector(double x, double y)
コンストラクタ3
FK_CLI
Definition AppWindow_CLI.h:11
FK_CLI::fk_Axis
fk_Axis
座標軸を表す列挙型
Definition Vector_CLI.h:10
FK_CLI::fk_Axis::X
@ X
x軸
Definition Vector_CLI.h:11
FK_CLI::fk_Axis::Z
@ Z
z軸
Definition Vector_CLI.h:13
FK_CLI::fk_Axis::Y
@ Y
y軸
Definition Vector_CLI.h:12