KisaragiLibrary
 
読み取り中…
検索中…
一致する文字列を見つけられません
Kisaragi_Lib::Point2D< T > 構造体テンプレート

点を表すプリミティブ型 [詳解]

#include <Primitive.hpp>

Kisaragi_Lib::Point2D< T > の継承関係図
Kisaragi_Lib::Vector2D< T >

公開メンバ関数

 Point2D ()
 
 Point2D (T _x, T _y)
 
Point2D operator+ (const Point2D _num) const
 
Point2D operator- (const Point2D _num) const
 
Point2D operator* (const Point2D _num) const
 
Point2D operator/ (const Point2D _num) const
 
const Point2D operator+= (const Point2D _num)
 
const Point2D operator-= (const Point2D _num)
 
const Point2D operator*= (const Point2D _num)
 
const Point2D operator/= (const Point2D _num)
 
Point2D operator* (T _num) const
 
Point2D operator/ (T _num) const
 
const Point2D operator*= (T _num)
 
const Point2D operator/= (T _num)
 
Point2D operator- () const
 
Dot (const Point2D _num) const
 
Cross (const Point2D _num) const
 
Length () const
 
Point2D< T > Normalize ()
 ベクトルを正規化する.
 
Point2D GetNormalize () const
 

公開変数類

x
 
y
 

詳解

template<typename T>
struct Kisaragi_Lib::Point2D< T >

点を表すプリミティブ型

テンプレート引数
T座標の型
から
ver1.0.0 コメント追加

構築子と解体子

◆ Point2D() [1/2]

◆ Point2D() [2/2]

template<typename T>
Kisaragi_Lib::Point2D< T >::Point2D ( T _x,
T _y )
inline
33:x(_x), y(_y) {}
点を表すプリミティブ型
Definition Primitive.hpp:29

関数詳解

◆ operator+()

template<typename T>
Point2D Kisaragi_Lib::Point2D< T >::operator+ ( const Point2D< T > _num) const
inline
37 {
38 return Point2D(x + _num.x, y + _num.y);
39 }
Point2D()
Definition Primitive.hpp:32

◆ operator-() [1/2]

template<typename T>
Point2D Kisaragi_Lib::Point2D< T >::operator- ( const Point2D< T > _num) const
inline
42 {
43 return Point2D(x - _num.x, y - _num.y);
44 }

◆ operator*() [1/2]

template<typename T>
Point2D Kisaragi_Lib::Point2D< T >::operator* ( const Point2D< T > _num) const
inline
47 {
48 return Point2D(x * _num.x, y * _num.y);
49 }

◆ operator/() [1/2]

template<typename T>
Point2D Kisaragi_Lib::Point2D< T >::operator/ ( const Point2D< T > _num) const
inline
52 {
53 return Point2D(x / _num.x, y / _num.y);
54 }

◆ operator+=()

template<typename T>
const Point2D Kisaragi_Lib::Point2D< T >::operator+= ( const Point2D< T > _num)
inline
59 {
60 x += _num.x;
61 y += _num.y;
62
63 return *this;
64 }

◆ operator-=()

template<typename T>
const Point2D Kisaragi_Lib::Point2D< T >::operator-= ( const Point2D< T > _num)
inline
67 {
68 x -= _num.x;
69 y -= _num.y;
70
71 return *this;
72 }

◆ operator*=() [1/2]

template<typename T>
const Point2D Kisaragi_Lib::Point2D< T >::operator*= ( const Point2D< T > _num)
inline
75 {
76 x *= _num.x;
77 y *= _num.y;
78
79 return *this;
80 }

◆ operator/=() [1/2]

template<typename T>
const Point2D Kisaragi_Lib::Point2D< T >::operator/= ( const Point2D< T > _num)
inline
83 {
84 x /= _num.x;
85 y /= _num.y;
86
87 return *this;
88 }

◆ operator*() [2/2]

template<typename T>
Point2D Kisaragi_Lib::Point2D< T >::operator* ( T _num) const
inline
93 {
94 return Point2D(x * _num, y * _num);
95 }

◆ operator/() [2/2]

template<typename T>
Point2D Kisaragi_Lib::Point2D< T >::operator/ ( T _num) const
inline
98 {
99 return Point2D(x / _num, y / _num);
100 }

◆ operator*=() [2/2]

template<typename T>
const Point2D Kisaragi_Lib::Point2D< T >::operator*= ( T _num)
inline
103 {
104 x *= _num;
105 y *= _num;
106
107 return *this;
108 }

◆ operator/=() [2/2]

template<typename T>
const Point2D Kisaragi_Lib::Point2D< T >::operator/= ( T _num)
inline
111 {
112 x /= _num;
113 y /= _num;
114
115 return *this;
116 }

◆ operator-() [2/2]

template<typename T>
Point2D Kisaragi_Lib::Point2D< T >::operator- ( ) const
inline
121 {
122 return Point2D(-x, -y);
123 }

◆ Dot()

template<typename T>
T Kisaragi_Lib::Point2D< T >::Dot ( const Point2D< T > _num) const
inline

◆ Cross()

template<typename T>
T Kisaragi_Lib::Point2D< T >::Cross ( const Point2D< T > _num) const
inline
133 {
134 return x * _num.y - y * _num.x;
135 }

参照元 Kisaragi_Lib::Vector2D< T >::isParallel().

◆ Length()

template<typename T>
T Kisaragi_Lib::Point2D< T >::Length ( ) const
inline
139 {
140 return std::sqrt(Math::Pow(x,2) + Math::Pow(y,2));
141
142 }

◆ Normalize()

template<typename T>
Point2D< T > Kisaragi_Lib::Point2D< T >::Normalize ( )
inline

ベクトルを正規化する.

テンプレート引数
typeベクトルの型
引数
_vec正規化したいベクトル
戻り値
正規化したベクトル
151 {
152 T vecLength = sqrt((x * x) + (y * y));
153
154 //正規化されている(ベクトルの長さが1)なら.
155 if (EpsilonIf(vecLength, 1, EPSILON))
156 {
157 //処理しない
158 return *this;
159 }
160
161 //正規化処理.
162 if (x != 0)
163 {
164 x = (x / vecLength);
165 }
166
167 if (y != 0)
168 {
169 y = (y / vecLength);
170 }
171
172 return *this;
173
174 }
static bool EpsilonIf(T _val01, T _val02, T _epsilon)
_valの差が_許容範囲内か調べる
Definition utility.hpp:44

参照元 GetNormalize(), Kisaragi_Lib::Vector2D< T >::GetNormalVector(), Kisaragi_Lib::Vector2D< T >::RadianToVector(), Kisaragi_Lib::Vector2D< T >::ToDegree(), Kisaragi_Lib::Vector2D< T >::ToRadian(), Kisaragi_Lib::Vector2D< T >::ToRadian().

◆ GetNormalize()

template<typename T>
Point2D Kisaragi_Lib::Point2D< T >::GetNormalize ( ) const
inline
177 {
178 Point2D tmp(x, y);
179 tmp.Normalize();
180
181 return tmp;
182 }
Point2D< T > Normalize()
ベクトルを正規化する.
Definition Primitive.hpp:150

参照元 Kisaragi_Lib::Vector2D< T >::Degree().

メンバ詳解

◆ x

◆ y


この構造体詳解は次のファイルから抽出されました: