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

平面を定義します。 More...

#include <Plane.h>

List of all members.

Public Member Functions

 Plane ()
 各要素に 0.0 を設定してインスタンスを初期化します。
 Plane (float a, float b, float c, float d)
 各要素を指定してインスタンスを初期化します。
 Plane (const Vector3 &point, const Vector3 &normal)
 平面上の1点と法線を指定してインスタンスを初期化します。
 Plane (const Vector3 &point1, const Vector3 &point2, const Vector3 &point3)
 平面上の3点を指定してインスタンスを初期化します。
void Normalize ()
 この平面を正規化します。
bool CheckInside (const Vector3 &point) const
 点がこの平面の裏側にあるかを判定します。
bool CheckInside (const Vector3 &point, float radius) const
 球がこの平面の裏側にあるかを判定します。
bool Intersects (const Vector3 &start, const Vector3 &end, Vector3 *point) const
 この平面と線分が交差するかを判定します。
void Transform (const Matrix &mat)
 指定された行列を使用してこの平面を座標変換します。
void Print (const char *format=NULL, FILE *stream=NULL) const
 デバッグ用に文字列を標準出力します。

Static Public Member Functions

static Plane Normalize (const Plane &plane)
 正規化した平面を返します。
static float Dot (const Plane &plane, const Vector4 &vec)
 平面と 4D ベクトルの内積を計算します。
static float DotCoord (const Plane &plane, const Vector3 &vec)
 平面と 3D ベクトルの内積を計算します。(ベクトルの W を 1.0 として計算する)
static float DotNormal (const Plane &plane, const Vector3 &vec)
 平面と 3D ベクトルの内積を計算します。(ベクトルの W を 0.0 として計算する)
static Plane Transform (const Plane &plane, const Matrix &mat)
 指定された行列を使用して平面を座標変換します。

Public Attributes

Vector3 Normal
 Plane の法線 ベクトル
float D
 原点からの法線に沿った Plane の距離

Detailed Description

平面を定義します。


Constructor & Destructor Documentation

Lumino::Plane::Plane ( float  a,
float  b,
float  c,
float  d 
)

各要素を指定してインスタンスを初期化します。

Parameters:
[in]a: 法線の X 成分
[in]b: 法線の Y 成分
[in]c: 法線の Z 成分
[in]d: 原点からの法線に沿った Plane の距離
Lumino::Plane::Plane ( const Vector3 point,
const Vector3 normal 
)

平面上の1点と法線を指定してインスタンスを初期化します。

Parameters:
[in]point: 平面上の点
[in]normal: 法線 (正規化済みであること)
Lumino::Plane::Plane ( const Vector3 point1,
const Vector3 point2,
const Vector3 point3 
)

平面上の3点を指定してインスタンスを初期化します。

Parameters:
[in]point1: 平面上の点1
[in]point2: 平面上の点2
[in]point3: 平面上の点3

Member Function Documentation

bool Lumino::Plane::CheckInside ( const Vector3 point) const [inline]

点がこの平面の裏側にあるかを判定します。

Parameters:
[in]point: 判定する点の座標
Returns:
true の場合、裏側にある

面は法線が伸びている方が表側です。

bool Lumino::Plane::CheckInside ( const Vector3 point,
float  radius 
) const [inline]

球がこの平面の裏側にあるかを判定します。

Parameters:
[in]point: 球の中心座標
[in]radius: 球の半径
Returns:
true の場合、裏側にある (接触している場合も true)

面は法線が伸びている方が表側です。

static float Lumino::Plane::Dot ( const Plane plane,
const Vector4 vec 
) [static]

平面と 4D ベクトルの内積を計算します。

Parameters:
[in]plane: 処理の基になる平面
[in]vec: 処理の基になるベクトル
static float Lumino::Plane::DotCoord ( const Plane plane,
const Vector3 vec 
) [static]

平面と 3D ベクトルの内積を計算します。(ベクトルの W を 1.0 として計算する)

Parameters:
[in]plane: 処理の基になる平面
[in]vec: 処理の基になるベクトル
Note:
戻り値が正の値である場合、点は平面の表側になります。
static float Lumino::Plane::DotNormal ( const Plane plane,
const Vector3 vec 
) [static]

平面と 3D ベクトルの内積を計算します。(ベクトルの W を 0.0 として計算する)

Parameters:
[in]plane: 処理の基になる平面
[in]vec: 処理の基になるベクトル
bool Lumino::Plane::Intersects ( const Vector3 start,
const Vector3 end,
Vector3 point 
) const

この平面と線分が交差するかを判定します。

Parameters:
[in]start: 線分の始点
[in]end: 線分の終点
[in]point: 交点の座標を格納するベクトルのポインタ
Returns:
交差する場合は true、平行な場合は false

この平面を正規化します。

面法線 Normal を正規化し、それに使用した係数を D にも適用します。

static Plane Lumino::Plane::Normalize ( const Plane plane) [static]

正規化した平面を返します。

Parameters:
[in]plane: 処理の基になる平面
Returns:
正規化された平面

面法線 Normal を正規化し、それに使用した係数を D にも適用します。

void Lumino::Plane::Print ( const char *  format = NULL,
FILE *  stream = NULL 
) const

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

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

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

void Lumino::Plane::Transform ( const Matrix mat)

指定された行列を使用してこの平面を座標変換します。

Parameters:
[in]mat: 処理の基になる行列
Returns:
変換された平面
static Plane Lumino::Plane::Transform ( const Plane plane,
const Matrix mat 
) [static]

指定された行列を使用して平面を座標変換します。

Parameters:
[in]plane: 処理の基になる平面
[in]mat: 処理の基になる行列
Returns:
変換された平面

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