Lumino
ln::Vector2 Struct Reference

2次元のベクトルを定義します。 More...

#include <Vector2.hpp>

Public Member Functions

 Vector2 ()
 すべての要素を 0.0 に設定してインスタンスを初期化します。
 
 Vector2 (float x, float y)
 指定した値を使用してインスタンスを初期化します。
 
void set (float x, float y)
 各要素に値を設定します。
 
float * data () noexcept
 Returns pointer to the first element. More...
 
const float * data () const noexcept
 Returns pointer to the first element. More...
 
float length () const
 このベクトルの長さを返します。
 
float lengthSquared () const
 このベクトルの長さの 2 乗を返します。
 
void normalize ()
 このベクトルを正規化します。 ベクトルの長さが 0 の場合は正規化を行いません。
 
void transformCoord (const Matrix &mat)
 指定された行列を使用してこのベクトルを座標変換します。 More...
 
bool isNaNOrInf () const
 要素のいずれかが NaN または Inf かを判別します。
 
void print (const char *format=NULL, FILE *stream=NULL) const
 デバッグ用に文字列を標準出力します。 More...
 

Static Public Member Functions

static Vector2 normalize (const Vector2 &vec)
 指定ベクトルを正規化したベクトルを返します。 More...
 
static float distance (const Vector2 &vec1, const Vector2 &vec2)
 2つのベクトル間の距離を計算します。 More...
 
static float dot (const Vector2 &vec1, const Vector2 &vec2)
 2つのベクトルの内積を計算します。 More...
 
static Vector2 min (const Vector2 &vec1, const Vector2 &vec2)
 2つのベクトルの最小値で構成されるベクトルを返します。 More...
 
static Vector2 max (const Vector2 &vec1, const Vector2 &vec2)
 2つのベクトルの最大値で構成されるベクトルを返します。 More...
 
static Vector4 transform (const Vector2 &vec, const Matrix &mat)
 指定された行列を使用してベクトルを座標変換します。 More...
 
static Vector2 transformCoord (const Vector2 &vec, const Matrix &mat)
 指定された行列を使用してベクトルを座標変換します。 More...
 
static Vector2 lerp (const Vector2 &start, const Vector2 &end, float t)
 2 つのベクトル間の線形補間を行います。 More...
 
static Vector2 hermite (const Vector2 &v1, const Vector2 &a1, const Vector2 &v2, const Vector2 &a2, float t)
 指定されたベクトルを使用して エルミートスプライン補間を実行します。 More...
 
static Vector2 catmullRom (const Vector2 &vec1, const Vector2 &vec2, const Vector2 &vec3, const Vector2 &vec4, float t)
 指定されたベクトルを使用して Catmull-Rom 補間を行います。 More...
 

Public Attributes

float x
 X 要素
 
float y
 Y 要素
 

Static Public Attributes

static const Vector2 Zero
 Vector2(0, 0)
 
static const Vector2 UnitX
 Vector2(1, 0)
 
static const Vector2 UnitY
 Vector2(0, 1)
 
static const Vector2 Ones
 Vector2(1, 1)
 
static const Vector2 NaN
 Vector2(nan, nan)
 

Detailed Description

2次元のベクトルを定義します。

Member Function Documentation

◆ catmullRom()

static Vector2 ln::Vector2::catmullRom ( const Vector2 vec1,
const Vector2 vec2,
const Vector2 vec3,
const Vector2 vec4,
float  t 
)
static

指定されたベクトルを使用して Catmull-Rom 補間を行います。

Parameters
[in]vec1: 1番目の位置
[in]vec2: 2番目の位置 (t = 0.0 のときの値)
[in]vec3: 3番目の位置 (t = 1.0 のときの値)
[in]vec4: 4番目の位置
[in]t: 加重係数
Returns
補間結果のベクトル

t は通常、0.0~1.0 を指定します。

◆ data() [1/2]

float* ln::Vector2::data ( )
inlinenoexcept

Returns pointer to the first element.

◆ data() [2/2]

const float* ln::Vector2::data ( ) const
inlinenoexcept

Returns pointer to the first element.

◆ distance()

static float ln::Vector2::distance ( const Vector2 vec1,
const Vector2 vec2 
)
static

2つのベクトル間の距離を計算します。

Parameters
[in]vec1: 処理の基になるベクトル
[in]vec2: 処理の基になるベクトル
Returns
2つのベクトル間の距離

◆ dot()

static float ln::Vector2::dot ( const Vector2 vec1,
const Vector2 vec2 
)
static

2つのベクトルの内積を計算します。

Parameters
[in]vec1: 処理の基になるベクトル
[in]vec2: 処理の基になるベクトル
Returns
2つのベクトルの内積

◆ hermite()

static Vector2 ln::Vector2::hermite ( const Vector2 v1,
const Vector2 a1,
const Vector2 v2,
const Vector2 a2,
float  t 
)
static

指定されたベクトルを使用して エルミートスプライン補間を実行します。

Parameters
[in]v1: 開始ベクトル
[in]a1: 開始ベクトルの接線ベクトル(速度)
[in]v2: 終了ベクトル
[in]a2: 終了ベクトルの接線ベクトル(速度)
[in]t: 加重係数
Returns
補間結果の値

t は通常、0.0~1.0 を指定します。

◆ lerp()

static Vector2 ln::Vector2::lerp ( const Vector2 start,
const Vector2 end,
float  t 
)
static

2 つのベクトル間の線形補間を行います。

Parameters
[in]start: 開始ベクトル (t = 0.0 のときの値)
[in]end: 終了ベクトル (t = 1.0 のときの値)
[in]t: 加重係数
Returns
補間結果のベクトル

t は通常、0.0~1.0 を指定します。

◆ max()

static Vector2 ln::Vector2::max ( const Vector2 vec1,
const Vector2 vec2 
)
static

2つのベクトルの最大値で構成されるベクトルを返します。

Parameters
[in]vec1: 処理の基になるベクトル
[in]vec2: 処理の基になるベクトル
Returns
最大値から作成されたベクトル

◆ min()

static Vector2 ln::Vector2::min ( const Vector2 vec1,
const Vector2 vec2 
)
static

2つのベクトルの最小値で構成されるベクトルを返します。

Parameters
[in]vec1: 処理の基になるベクトル
[in]vec2: 処理の基になるベクトル
Returns
最小値から作成されたベクトル

◆ normalize()

static Vector2 ln::Vector2::normalize ( const Vector2 vec)
static

指定ベクトルを正規化したベクトルを返します。

Parameters
[in]vec: 処理の基になるベクトル
Returns
正規化されたベクトル

◆ print()

void ln::Vector2::print ( const char *  format = NULL,
FILE *  stream = NULL 
) const

デバッグ用に文字列を標準出力します。

Parameters
[in]format: 書式指定文字列
[in]stream: 出力先ストリーム

format が NULL の場合、書式は "%f, %f\n" を使用します。

◆ transform()

static Vector4 ln::Vector2::transform ( const Vector2 vec,
const Matrix mat 
)
static

指定された行列を使用してベクトルを座標変換します。

Parameters
[in]vec: 処理の基になるベクトル
[in]mat: 処理の基になる行列
Returns
変換されたベクトル

◆ transformCoord() [1/2]

void ln::Vector2::transformCoord ( const Matrix mat)

指定された行列を使用してこのベクトルを座標変換します。

Parameters
[in]mat: 座標変換行列

ベクトルを (X, Y, 0.0, 1.0) として座標変換を行い、結果を w で除算します。

◆ transformCoord() [2/2]

static Vector2 ln::Vector2::transformCoord ( const Vector2 vec,
const Matrix mat 
)
static

指定された行列を使用してベクトルを座標変換します。

Parameters
[in]vec: 処理の基になるベクトル
[in]mat: 処理の基になる行列
Returns
変換されたベクトル

ベクトルを (X, Y, 0.0, 1.0) として座標変換を行い、結果を w で除算します。


The documentation for this struct was generated from the following file: