Lumino.Math
 All Classes Functions Variables Friends
Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Friends
Lumino::Vector2 Class Reference

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

#include <Vector2.h>

List of all members.

Public Member Functions

 Vector2 ()
 すべての要素を 0.0 に設定してインスタンスを初期化します。
 Vector2 (float x, float y)
 指定した値を使用してインスタンスを初期化します。
void Set (float x, float y)
 各要素に値を設定します。
float GetLength () const
 このベクトルの長さを返します。
float GetLengthSquared () const
 このベクトルの長さの 2 乗を返します。
void Normalize ()
 このベクトルを正規化します。
void TransformCoord (const Matrix &mat)
 指定された行列を使用してこのベクトルを座標変換します。
bool IsNaNOrInf () const
 要素のいずれかが NaN または Inf かを判別します。
void Print (const char *format=NULL, FILE *stream=NULL) const
 デバッグ用に文字列を標準出力します。
Vector2operator+= (const Vector2 &v)
Vector2operator+= (float v)
Vector2operator-= (const Vector2 &v)
Vector2operator-= (float v)
Vector2operator*= (const Vector2 &v)
Vector2operator*= (float v)
Vector2operator/= (const Vector2 &v)
Vector2operator/= (float v)
bool operator== (const Vector2 &v) const
bool operator!= (const Vector2 &v) const

Static Public Member Functions

static Vector2 Normalize (const Vector2 &vec)
 指定ベクトルを正規化したベクトルを返します。
static float Dot (const Vector2 &vec1, const Vector2 &vec2)
 2つのベクトルの内積を計算します。
static Vector2 Min (const Vector2 &vec1, const Vector2 &vec2)
 2つのベクトルの最小値で構成されるベクトルを返します。
static Vector2 Max (const Vector2 &vec1, const Vector2 &vec2)
 2つのベクトルの最大値で構成されるベクトルを返します。
static Vector4 Transform (const Vector2 &vec, const Matrix &mat)
 指定された行列を使用してベクトルを座標変換します。
static Vector2 TransformCoord (const Vector2 &vec, const Matrix &mat)
 指定された行列を使用してベクトルを座標変換します。
static Vector2 Lerp (const Vector2 &start, const Vector2 &end, float t)
 2 つのベクトル間の線形補間を行います。
static Vector2 Hermite (const Vector2 &v1, const Vector2 &a1, const Vector2 &v2, const Vector2 &a2, float t)
 指定されたベクトルを使用して エルミートスプライン補間を実行します。
static Vector2 CatmullRom (const Vector2 &vec1, const Vector2 &vec2, const Vector2 &vec3, const Vector2 &vec4, float t)
 指定されたベクトルを使用して Catmull-Rom 補間を行います。

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 One
 Vector2(1, 1)

Friends

Vector2 operator+ (const Vector2 &v1, const Vector2 &v2)
Vector2 operator+ (const Vector2 &v1, float v2)
Vector2 operator+ (float v1, const Vector2 &v2)
Vector2 operator- (const Vector2 &v1, const Vector2 &v2)
Vector2 operator- (const Vector2 &v1, float v2)
Vector2 operator- (float v1, const Vector2 &v2)
Vector2 operator* (const Vector2 &v1, const Vector2 &v2)
Vector2 operator* (const Vector2 &v1, float v2)
Vector2 operator* (float v1, const Vector2 &v2)
Vector2 operator/ (const Vector2 &v1, const Vector2 &v2)
Vector2 operator/ (const Vector2 &v1, float v2)
Vector2 operator/ (float v1, const Vector2 &v2)
Vector2 operator- (const Vector2 &v1)

Detailed Description

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


Member Function Documentation

static Vector2 Lumino::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 を指定します。

static float Lumino::Vector2::Dot ( const Vector2 vec1,
const Vector2 vec2 
) [static]

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

Parameters:
[in]vec1: 処理の基になるベクトル
[in]vec2: 処理の基になるベクトル
Returns:
2つのベクトルの内積
static Vector2 Lumino::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 を指定します。

static Vector2 Lumino::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 を指定します。

static Vector2 Lumino::Vector2::Max ( const Vector2 vec1,
const Vector2 vec2 
) [static]

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

Parameters:
[in]vec1: 処理の基になるベクトル
[in]vec2: 処理の基になるベクトル
Returns:
最大値から作成されたベクトル
static Vector2 Lumino::Vector2::Min ( const Vector2 vec1,
const Vector2 vec2 
) [static]

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

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

このベクトルを正規化します。

ベクトルの長さが 0 の場合は正規化を行いません。

static Vector2 Lumino::Vector2::Normalize ( const Vector2 vec) [static]

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

Parameters:
[in]vec: 処理の基になるベクトル
Returns:
正規化されたベクトル
void Lumino::Vector2::Print ( const char *  format = NULL,
FILE *  stream = NULL 
) const

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

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

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

static Vector4 Lumino::Vector2::Transform ( const Vector2 vec,
const Matrix mat 
) [static]

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

Parameters:
[in]vec: 処理の基になるベクトル
[in]mat: 処理の基になる行列
Returns:
変換されたベクトル
void Lumino::Vector2::TransformCoord ( const Matrix mat)

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

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

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

static Vector2 Lumino::Vector2::TransformCoord ( const Vector2 vec,
const Matrix mat 
) [static]

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

Parameters:
[in]vec: 処理の基になるベクトル
[in]mat: 処理の基になる行列

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

Returns:
変換されたベクトル

The documentation for this class was generated from the following files:
 All Classes Functions Variables Friends