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

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

#include <Vector3.h>

List of all members.

Public Member Functions

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

Static Public Member Functions

static Vector3 Normalize (float x, float y, float z)
 指定ベクトルを正規化したベクトルを返します。
static Vector3 Normalize (const Vector3 &vec)
 指定ベクトルを正規化したベクトルを返します。
static float Dot (const Vector3 &vec1, const Vector3 &vec2)
 2つのベクトルの内積を計算します。
static Vector3 Cross (const Vector3 &vec1, const Vector3 &vec2)
 2つのベクトルの外積を計算します。
static Vector3 Min (const Vector3 &vec1, const Vector3 &vec2)
 2つのベクトルの最小値で構成されるベクトルを返します。
static Vector3 Max (const Vector3 &vec1, const Vector3 &vec2)
 2つのベクトルの最大値で構成されるベクトルを返します。
static Vector3 Reflect (const Vector3 &vec, const Vector3 &normal)
 入射ベクトルと法線ベクトルから反射ベクトルを計算します。
static Vector3 Slide (const Vector3 &vec, const Vector3 &normal)
 入射ベクトルと法線ベクトルから滑りベクトルを計算します。
static Vector3 Transform (const Vector3 &vec, const Quaternion &qua)
 指定されたクォータニオンを使用してベクトルを座標変換します。
static Vector4 Transform (const Vector3 &vec, const Matrix &mat)
 指定された行列を使用してベクトルを座標変換します。
static Vector3 TransformCoord (const Vector3 &vec, const Matrix &mat)
 指定された行列を使用してベクトルを座標変換します。
static Vector3 Lerp (const Vector3 &start, const Vector3 &end, float t)
 2 つのベクトル間の線形補間を行います。
static Vector3 Hermite (const Vector3 &v1, const Vector3 &a1, const Vector3 &v2, const Vector3 &a2, float t)
 指定されたベクトルを使用して エルミートスプライン補間を実行します。
static Vector3 CatmullRom (const Vector3 &vec1, const Vector3 &vec2, const Vector3 &vec3, const Vector3 &vec4, float t)
 指定されたベクトルを使用して Catmull-Rom 補間を行います。
static Vector3 Project (const Vector3 &point, const Matrix &worldViewProj, float x, float y, float width, float height, float minZ=0.0f, float maxZ=1.0f)
 オブジェクト空間(3D空間)のベクトルをスクリーン空間(2D空間)のベクトルに変換する。
static Vector3 Unproject (const Vector3 &point, const Matrix &worldViewProj, float x, float y, float width, float height, float minZ=0.0f, float maxZ=1.0f)
 スクリーン空間(2D空間)のベクトルをオブジェクト空間(3D空間)のベクトルに変換する。

Public Attributes

float X
 X 要素
float Y
 Y 要素
float Z
 Z 要素

Static Public Attributes

static const Vector3 Zero
 Vector3(0, 0, 0)
static const Vector3 UnitX
 Vector3(1, 0, 0)
static const Vector3 UnitY
 Vector3(0, 1, 0)
static const Vector3 UnitZ
 Vector3(0, 0, 1)
static const Vector3 One
 Vector3(1, 1, 1)

Friends

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

Detailed Description

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


Member Function Documentation

static Vector3 Lumino::Vector3::CatmullRom ( const Vector3 vec1,
const Vector3 vec2,
const Vector3 vec3,
const Vector3 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 を指定します。

void Lumino::Vector3::Clamp ( const Vector3 minVec,
const Vector3 maxVec 
)

このベクトルを指定された最大値と最小値の範囲にクランプします。

Parameters:
[in]minVec: 最小値
[in]maxVec: 最大値
static Vector3 Lumino::Vector3::Cross ( const Vector3 vec1,
const Vector3 vec2 
) [static]

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

Parameters:
[in]vec1: 処理の基になるベクトル
[in]vec2: 処理の基になるベクトル
Returns:
2つのベクトルの外積
static float Lumino::Vector3::Dot ( const Vector3 vec1,
const Vector3 vec2 
) [static]

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

Parameters:
[in]vec1: 処理の基になるベクトル
[in]vec2: 処理の基になるベクトル
Returns:
2つのベクトルの内積
static Vector3 Lumino::Vector3::Hermite ( const Vector3 v1,
const Vector3 a1,
const Vector3 v2,
const Vector3 a2,
float  t 
) [static]

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

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

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

static Vector3 Lumino::Vector3::Lerp ( const Vector3 start,
const Vector3 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 Vector3 Lumino::Vector3::Max ( const Vector3 vec1,
const Vector3 vec2 
) [static]

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

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

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

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

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

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

static Vector3 Lumino::Vector3::Normalize ( float  x,
float  y,
float  z 
) [static]

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

Parameters:
[in]x: 処理の基になるベクトルの X 要素
[in]y: 処理の基になるベクトルの Y 要素
[in]z: 処理の基になるベクトルの Z 要素
Returns:
正規化されたベクトル
static Vector3 Lumino::Vector3::Normalize ( const Vector3 vec) [static]

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

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

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

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

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

static Vector3 Lumino::Vector3::Project ( const Vector3 point,
const Matrix worldViewProj,
float  x,
float  y,
float  width,
float  height,
float  minZ = 0.0f,
float  maxZ = 1.0f 
) [static]

オブジェクト空間(3D空間)のベクトルをスクリーン空間(2D空間)のベクトルに変換する。

Parameters:
[in]point: オブジェクト空間上の座標
[in]worldViewProj: 結合済みの ワールド - ビュー - プロジェクション行列
[in]x: ビューポートの左上 X 座標
[in]y: ビューポートの左上 Y 座標
[in]width: ビューポートの幅
[in]height: ビューポートの高さ
[in]minZ: ビューポートの最小深度
[in]maxZ: ビューポートの最大深度
static Vector3 Lumino::Vector3::Reflect ( const Vector3 vec,
const Vector3 normal 
) [static]

入射ベクトルと法線ベクトルから反射ベクトルを計算します。

Parameters:
[in]vec: 入射ベクトル
[in]normal: 法線ベクトル
Returns:
反射ベクトル
static Vector3 Lumino::Vector3::Slide ( const Vector3 vec,
const Vector3 normal 
) [static]

入射ベクトルと法線ベクトルから滑りベクトルを計算します。

Parameters:
[in]vec: 入射ベクトル
[in]normal: 法線ベクトル
Returns:
滑りベクトル
static Vector3 Lumino::Vector3::Transform ( const Vector3 vec,
const Quaternion qua 
) [static]

指定されたクォータニオンを使用してベクトルを座標変換します。

Parameters:
[in]vec: 処理の基になるベクトル
[in]qua: 処理の基になるクォータニオン
Returns:
変換されたベクトル
static Vector4 Lumino::Vector3::Transform ( const Vector3 vec,
const Matrix mat 
) [static]

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

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

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

Parameters:
[in]mat: 処理の基になる行列

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

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

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

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

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

Returns:
変換されたベクトル
static Vector3 Lumino::Vector3::Unproject ( const Vector3 point,
const Matrix worldViewProj,
float  x,
float  y,
float  width,
float  height,
float  minZ = 0.0f,
float  maxZ = 1.0f 
) [static]

スクリーン空間(2D空間)のベクトルをオブジェクト空間(3D空間)のベクトルに変換する。

Parameters:
[in]point: スクリーン空間上の座標
[in]worldViewProj: 結合済みの ワールド - ビュー - プロジェクション行列
[in]x: ビューポートの左上 X 座標
[in]y: ビューポートの左上 Y 座標
[in]width: ビューポートの幅
[in]height: ビューポートの高さ
[in]minZ: ビューポートの最小深度
[in]maxZ: ビューポートの最大深度

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