Lumino (C API)
算術機能

算術機能 More...

Functions

LNResult LNVector2_Set (LNVector2 *vec, float x, float y)
 2次元のベクトルのクラスです。 More...
 
LNResult LNVector2_GetLength (const LNVector2 *vec, float *outLength)
 2D ベクトルの長さを取得します。 More...
 
LNResult LNVector2_GetSquareLength (const LNVector2 *vec, float *outLength)
 2D ベクトルの長さの2乗を取得します。 More...
 
LNResult LNVector2_Normalize (const LNVector2 *vec, LNVector2 *outVec)
 2D ベクトルを正規化します。 More...
 
LNResult LNVector2_NormalizeV (LNVector2 *vec)
 2D ベクトルを正規化します。 More...
 
LNResult LNVector2_GetLengthD (const LNVector2 *vec, double *length)
 
LNResult LNVector2_GetSquareLengthD (const LNVector2 *vec, double *length)
 
LNResult LNVector3_Set (LNVector3 *vec, float x, float y, float z)
 3 次元ベクトルのクラスです。 More...
 
LNResult LNVector3_SetVZ (LNVector3 *vec, const LNVector2 *vec2, float z)
 2D ベクトル と Z値 を指定して、3Dベクトルに値を設定します。 More...
 
LNResult LNVector3_GetLength (const LNVector3 *vec, float *outLength)
 3Dベクトルの長さを取得します。 More...
 
LNResult LNVector3_GetSquareLength (const LNVector3 *vec, float *outLength)
 3D ベクトルの長さの2乗を計算する More...
 
LNResult LNVector3_Normalize (const LNVector3 *vec, LNVector3 *outVec)
 3D ベクトルを正規化します。 More...
 
LNResult LNVector3_NormalizeV (LNVector3 *vec)
 3D ベクトルを正規化します。 More...
 
LNResult LNVector3_Dot (const LNVector3 *vec1, const LNVector3 *vec2, float *dot)
 2 つの 3D ベクトルの内積を計算します。 More...
 
LNResult LNVector3_Cross (const LNVector3 *vec1, const LNVector3 *vec2, LNVector3 *outVec)
 2 つの 3D ベクトルの外積を計算します。 More...
 
LNResult LNVector3_Reflect (const LNVector3 *vec, const LNVector3 *normal, LNVector3 *outVec)
 指定された法線で反射させたベクトルを計算します。 More...
 
LNResult LNVector3_Slide (const LNVector3 *vec, const LNVector3 *normal, LNVector3 *outVec)
 指定された法線と方向から滑りベクトルを計算します。 More...
 
LNResult LNVector3_Lerp (const LNVector3 *vec1, const LNVector3 *vec2, float t, LNVector3 *outVec)
 2 つの 3D ベクトル間を線形補間します。 More...
 
LNResult LNVector3_CatmullRom (const LNVector3 *vec1, const LNVector3 *vec2, const LNVector3 *vec3, const LNVector3 *vec4, float t, LNVector3 *outVec)
 指定された 3D ベクトルを Catmull-Rom 補間します。 More...
 
LNResult LNVector3_Transform (const LNVector3 *vec, const LNMatrix *mat, LNVector4 *outVec)
 指定された行列を使用して座標変換します。 More...
 
LNResult LNVector3_TransformCoord (const LNVector3 *vec, const LNMatrix *mat, LNVector3 *outVec)
 指定された行列を使用して座標変換し、結果を w = 1 に射影します。 More...
 
LNResult LNVector3_GetLengthD (const LNVector3 *vec, double *length)
 
LNResult LNVector3_GetSquareLengthD (const LNVector3 *vec, double *length)
 
LNResult LNVector3_DotD (const LNVector3 *vec1, const LNVector3 *vec2, double *dot)
 
LNResult LNVector3_LerpD (const LNVector3 *vec1, const LNVector3 *vec2, double t, LNVector3 *outVec)
 
LNResult LNVector3_CatmullRomD (const LNVector3 *vec1, const LNVector3 *vec2, const LNVector3 *vec3, const LNVector3 *vec4, double t, LNVector3 *outVec)
 
LNResult LNVector4_Set (LNVector4 *vec, float x, float y, float z, float w)
 4 次元ベクトルのクラスです。 More...
 
LNResult LNMatrix_Identity (LNMatrix *mat)
 4x4 行列のクラスです。 More...
 
LNResult LNMatrix_Translate (LNMatrix *mat, float x, float y, float z)
 行列を平行移動します。 More...
 
LNResult LNMatrix_TranslateVec3 (LNMatrix *mat, const LNVector3 *vec)
 行列を平行移動します。 More...
 
LNResult LNMatrix_RotateX (LNMatrix *mat, float radian)
 X 軸を回転軸にして行列を回転します。 (ラジアン単位) More...
 
LNResult LNMatrix_RotateY (LNMatrix *mat, float radian)
 Y 軸を回転軸にして行列を回転します。 (ラジアン単位) More...
 
LNResult LNMatrix_RotateZ (LNMatrix *mat, float radian)
 Z 軸を回転軸にして行列を回転します。 (ラジアン単位) More...
 
LNResult LNMatrix_Rotate (LNMatrix *mat, float xRad, float yRad, float zRad, LNRotationOrder rotOrder)
 行列を回転します。 (ラジアン単位) More...
 
LNResult LNMatrix_RotateVec3 (LNMatrix *mat, const LNVector3 *vec, LNRotationOrder rotOrder)
 行列を回転します。 (ラジアン単位) More...
 
LNResult LNMatrix_RotateAxis (LNMatrix *mat, const LNVector3 *axis, float radian)
 任意の軸を回転軸にして行列を回転します。 (ラジアン単位) More...
 
LNResult LNMatrix_RotateQuaternion (LNMatrix *mat, const LNQuaternion *qua)
 クォータニオンを使って行列を回転します。 More...
 
LNResult LNMatrix_Scale (LNMatrix *mat, float xyz)
 行列をスケーリングします。 More...
 
LNResult LNMatrix_ScaleXYZ (LNMatrix *mat, float x, float y, float z)
 行列をスケーリングします。 More...
 
LNResult LNMatrix_ScaleVec3 (LNMatrix *mat, const LNVector3 *scale)
 行列をスケーリングします。 More...
 
LNResult LNMatrix_Multiply (const LNMatrix *mat1, const LNMatrix *mat2, LNMatrix *matOut)
 行列を乗算します。 More...
 
LNResult LNMatrix_Inverse (const LNMatrix *mat, LNMatrix *matOut)
 逆行列を求めます。 More...
 
LNResult LNMatrix_Transpose (const LNMatrix *mat, LNMatrix *matOut)
 転置行列を求めます。 More...
 
LNResult LNMatrix_ViewTransformLH (const LNVector3 *pos, const LNVector3 *lookAt, const LNVector3 *upDir, LNMatrix *matOut)
 左手座標系ビュー行列を作成します。 More...
 
LNResult LNMatrix_ViewTransformRH (const LNVector3 *pos, const LNVector3 *lookAt, const LNVector3 *upDir, LNMatrix *matOut)
 右手座標系ビュー行列を作成します。 More...
 
LNResult LNMatrix_PerspectiveFovLH (float fovY, float aspect, float nearZ, float farZ, LNMatrix *matOut)
 左手座標系射影行列を作成します。 More...
 
LNResult LNMatrix_PerspectiveFovRH (float fovY, float aspect, float nearZ, float farZ, LNMatrix *matOut)
 右手座標系射影行列作成します。 More...
 
LNResult LNMatrix_OrthoLH (float width, float height, float nearZ, float farZ, LNMatrix *matOut)
 左手座標系正射影行列作成します。 More...
 
LNResult LNMatrix_OrthoRH (float width, float height, float nearZ, float farZ, LNMatrix *matOut)
 右手座標系正射影行列作成します。 More...
 
LNResult LNMatrix_GetRight (const LNMatrix *mat, LNVector3 *outVec)
 右方向を示す 3D ベクトルを取得します。 More...
 
LNResult LNMatrix_GetUp (const LNMatrix *mat, LNVector3 *outVec)
 上方向を示す 3D ベクトルを取得します。 More...
 
LNResult LNMatrix_GetFront (const LNMatrix *mat, LNVector3 *outVec)
 正面方向を示す 3D ベクトルを取得します。 More...
 
LNResult LNMatrix_GetPosition (const LNMatrix *mat, LNVector3 *outVec)
 位置を示す 3D ベクトルを取得します。 More...
 
LNResult LNMatrix_GetEulerAngles (const LNMatrix *mat, LNVector3 *outVec)
 回転行列からオイラー角を計算します。 More...
 
LNResult LNMatrix_Decompose (const LNMatrix *mat, LNVector3 *scale, LNQuaternion *rot, LNVector3 *trans)
 行列をスケーリング、回転、移動成分に分解します。 More...
 
LNResult LNMatrix_TranslateD (LNMatrix *mat, double x, double y, double z)
 
LNResult LNMatrix_RotateXD (LNMatrix *mat, double radian)
 
LNResult LNMatrix_RotateYD (LNMatrix *mat, double radian)
 
LNResult LNMatrix_RotateZD (LNMatrix *mat, double radian)
 
LNResult LNMatrix_RotateD (LNMatrix *mat, double xRad, double yRad, double zRad, LNRotationOrder rotOrder)
 
LNResult LNMatrix_RotateAxisD (LNMatrix *mat, const LNVector3 *axis, double radian)
 
LNResult LNMatrix_ScaleD (LNMatrix *mat, double xyz)
 
LNResult LNMatrix_ScaleXYZD (LNMatrix *mat, double x, double y, double z)
 
LNResult LNMatrix_PerspectiveFovLHD (LNMatrix *mat, double fovY, double aspect, double nearZ, double farZ)
 
LNResult LNMatrix_PerspectiveFovRHD (LNMatrix *mat, double fovY, double aspect, double nearZ, double farZ)
 
LNResult LNMatrix_OrthoLHD (LNMatrix *mat, double width, double height, double nearZ, double farZ)
 
LNResult LNMatrix_OrthoRHD (LNMatrix *mat, double width, double height, double nearZ, double farZ)
 
LNResult LNQuaternion_Set (LNQuaternion *qua, float x, float y, float z, float w)
 クォータニオンのクラスです。 More...
 
LNResult LNQuaternion_Identity (LNQuaternion *qua)
 単位クォータニオンを作成します。 More...
 
LNResult LNQuaternion_RotationAxis (const LNVector3 *axis, float r, LNQuaternion *outQua)
 任意の軸を回転軸にして回転するクォータニオンを作成します。 More...
 
LNResult LNQuaternion_RotationMatrix (const LNMatrix *mat, LNQuaternion *outQua)
 回転行列からクォータニオンを作成します。 More...
 
LNResult LNQuaternion_RotationYawPitchRoll (float yaw, float pitch, float roll, LNQuaternion *outQua)
 ヨー、ピッチ、およびロールを指定してクォータニオンを作成します。 More...
 
LNResult LNQuaternion_Normalize (const LNQuaternion *qua, LNQuaternion *outQua)
 クォータニオンを正規化します。 More...
 
LNResult LNQuaternion_Conjugate (const LNQuaternion *qua, LNQuaternion *outQua)
 クォータニオンの共役を計算します。 More...
 
LNResult LNQuaternion_Multiply (const LNQuaternion *qua1, const LNQuaternion *qua2, LNQuaternion *outQua)
 2 つのクォータニオンの積を計算します。 More...
 
LNResult LNQuaternion_Slerp (const LNQuaternion *qua1, const LNQuaternion *qua2, float t, LNQuaternion *outQua)
 2 つのクォータニオンを球面線形補間します。 More...
 
LNResult LNQuaternion_RotationAxisD (const LNVector3 *axis, float r, LNQuaternion *outQua)
 
LNResult LNQuaternion_RotationYawPitchRollD (float yaw, float pitch, float roll, LNQuaternion *outQua)
 
LNResult LNQuaternion_SlerpD (const LNQuaternion *qua1, const LNQuaternion *qua2, float t, LNQuaternion *outQua)
 

Detailed Description

算術機能

Function Documentation

LNResult LNMatrix_Decompose ( const LNMatrix mat,
LNVector3 scale,
LNQuaternion rot,
LNVector3 trans 
)

行列をスケーリング、回転、移動成分に分解します。

Parameters
[in]mat: 処理の基になる行列
[out]rot: 各軸の回転情報を格納する Quaternion 変数
[out]scale: 各軸のスケーリング量を格納する Vector3 変数
[out]trans: 各軸の平行移動量を格納する Vector3 変数
LNResult LNMatrix_GetEulerAngles ( const LNMatrix mat,
LNVector3 outVec 
)

回転行列からオイラー角を計算します。

Parameters
[in]mat: 処理の基になる行列
[out]outVec: 各軸の回転角度(ラジアン)を格納する Vector3 変数
LNResult LNMatrix_GetFront ( const LNMatrix mat,
LNVector3 outVec 
)

正面方向を示す 3D ベクトルを取得します。

Parameters
[in]mat: 処理の基になる行列
[out]outVec: 結果を格納する Vector3 変数
LNResult LNMatrix_GetPosition ( const LNMatrix mat,
LNVector3 outVec 
)

位置を示す 3D ベクトルを取得します。

Parameters
[in]mat: 処理の基になる行列
[out]outVec: 結果を格納する Vector3 変数
LNResult LNMatrix_GetRight ( const LNMatrix mat,
LNVector3 outVec 
)

右方向を示す 3D ベクトルを取得します。

Parameters
[in]mat: 処理の基になる行列
[out]outVec: 結果を格納する Vector3 変数
LNResult LNMatrix_GetUp ( const LNMatrix mat,
LNVector3 outVec 
)

上方向を示す 3D ベクトルを取得します。

Parameters
[in]mat: 処理の基になる行列
[out]outVec: 結果を格納する Vector3 変数
LNResult LNMatrix_Identity ( LNMatrix mat)

4x4 行列のクラスです。

単位行列を作成します。

Parameters
[out]mat: 結果を格納する行列
LNResult LNMatrix_Inverse ( const LNMatrix mat,
LNMatrix matOut 
)

逆行列を求めます。

Parameters
[in]mat: 処理の基になる行列
[out]matOut: 演算結果を格納する行列
LNResult LNMatrix_Multiply ( const LNMatrix mat1,
const LNMatrix mat2,
LNMatrix matOut 
)

行列を乗算します。

Parameters
[in]mat1: 処理の基になる行列
[in]mat2: 処理の基になる行列
[out]matOut: 結果を格納する行列
LNResult LNMatrix_OrthoLH ( float  width,
float  height,
float  nearZ,
float  farZ,
LNMatrix matOut 
)

左手座標系正射影行列作成します。

Parameters
[in]width: ビューの幅
[in]height: ビューの高さ
[in]nearZ: 近くのビュー平面の Z 値
[in]farZ: 遠くのビュー平面の Z 値
[out]matOut: 演算結果を格納する行列
LNResult LNMatrix_OrthoRH ( float  width,
float  height,
float  nearZ,
float  farZ,
LNMatrix matOut 
)

右手座標系正射影行列作成します。

Parameters
[in]width: ビューの幅
[in]height: ビューの高さ
[in]nearZ: 近くのビュー平面の Z 値
[in]farZ: 遠くのビュー平面の Z 値
[out]matOut: 演算結果を格納する行列
LNResult LNMatrix_PerspectiveFovLH ( float  fovY,
float  aspect,
float  nearZ,
float  farZ,
LNMatrix matOut 
)

左手座標系射影行列を作成します。

Parameters
[in]fovY: Y 方向への視野角 (ラジアン単位)
[in]aspect: アスペクト比
[in]nearZ: 近くのビュー平面の Z 値
[in]farZ: 遠くのビュー平面の Z 値
[out]matOut: 演算結果を格納する行列
LNResult LNMatrix_PerspectiveFovRH ( float  fovY,
float  aspect,
float  nearZ,
float  farZ,
LNMatrix matOut 
)

右手座標系射影行列作成します。

Parameters
[in]fovY: Y 方向への視野角 (ラジアン単位)
[in]aspect: アスペクト比
[in]nearZ: 近くのビュー平面の Z 値
[in]farZ: 遠くのビュー平面の Z 値
[out]matOut: 演算結果を格納する行列
LNResult LNMatrix_Rotate ( LNMatrix mat,
float  xRad,
float  yRad,
float  zRad,
LNRotationOrder  rotOrder 
)

行列を回転します。 (ラジアン単位)

Parameters
[in,out]mat: 演算結果を格納する行列
[in]xRad: X 軸を回転軸とした角度
[in]yRad: Y 軸を回転軸とした角度
[in]zRad: Z 軸を回転軸とした角度
[in]rotOrder: 回転順序の指定

与えられた引数から回転行列を作り、現在の行列に乗算します。

LNResult LNMatrix_RotateAxis ( LNMatrix mat,
const LNVector3 axis,
float  radian 
)

任意の軸を回転軸にして行列を回転します。 (ラジアン単位)

Parameters
[in,out]mat: 演算結果を格納する行列
[in]axis: 回転軸を示す Vector3
[in]radian: 回転角度

与えられた引数から回転行列を作り、現在の行列に乗算します。
与えられた軸が正規化されていない場合は正規化したものを使って計算します。

LNResult LNMatrix_RotateQuaternion ( LNMatrix mat,
const LNQuaternion qua 
)

クォータニオンを使って行列を回転します。

Parameters
[in,out]mat: 演算結果を格納する行列
[in]qua: 処理の基になる Quaternion

クォータニオンから回転行列を作り、現在の行列に乗算します。

LNResult LNMatrix_RotateVec3 ( LNMatrix mat,
const LNVector3 vec,
LNRotationOrder  rotOrder 
)

行列を回転します。 (ラジアン単位)

Parameters
[in,out]mat: 演算結果を格納する行列
[in]vec: 各軸の回転角度
[in]rotOrder: 回転順序の指定

与えられた引数から回転行列を作り、現在の行列に乗算します。

LNResult LNMatrix_RotateX ( LNMatrix mat,
float  radian 
)

X 軸を回転軸にして行列を回転します。 (ラジアン単位)

Parameters
[in,out]mat: 演算結果を格納する行列
[in]radian: 回転角度 ( 軸方向に対して反時計回り )

与えられた引数から回転行列を作り、現在の行列に乗算します。

LNResult LNMatrix_RotateY ( LNMatrix mat,
float  radian 
)

Y 軸を回転軸にして行列を回転します。 (ラジアン単位)

Parameters
[in,out]mat: 演算結果を格納する行列
[in]radian: 回転角度

与えられた引数から回転行列を作り、現在の行列に乗算します。

LNResult LNMatrix_RotateZ ( LNMatrix mat,
float  radian 
)

Z 軸を回転軸にして行列を回転します。 (ラジアン単位)

Parameters
[in,out]mat: 演算結果を格納する行列
[in]radian: 回転角度

与えられた引数から回転行列を作り、現在の行列に乗算します。

LNResult LNMatrix_Scale ( LNMatrix mat,
float  xyz 
)

行列をスケーリングします。

Parameters
[in,out]mat: 演算結果を格納する行列
[in]xyz: X Y Z 全ての方向に適用する拡大率 (X Y Z を同じ値で拡大)

与えられた引数からスケーリング行列を作り、現在の行列に乗算します。

LNResult LNMatrix_ScaleVec3 ( LNMatrix mat,
const LNVector3 scale 
)

行列をスケーリングします。

Parameters
[in,out]mat: 演算結果を格納する行列
[in]scale: 各方向の拡大率

与えられた引数からスケーリング行列を作り、現在の行列に乗算します。

LNResult LNMatrix_ScaleXYZ ( LNMatrix mat,
float  x,
float  y,
float  z 
)

行列をスケーリングします。

Parameters
[in,out]mat: 演算結果を格納する行列
[in]x: X 方向の拡大率
[in]y: Y 方向の拡大率
[in]z: Z 方向の拡大率

与えられた引数からスケーリング行列を作り、現在の行列に乗算します。

LNResult LNMatrix_Translate ( LNMatrix mat,
float  x,
float  y,
float  z 
)

行列を平行移動します。

Parameters
[in,out]mat: 演算結果を格納する行列
[in]x: X 方向の移動量
[in]y: Y 方向の移動量
[in]z: Z 方向の移動量

与えられた引数から平行移動行列を作り、現在の行列に乗算します。

LNResult LNMatrix_TranslateVec3 ( LNMatrix mat,
const LNVector3 vec 
)

行列を平行移動します。

Parameters
[in,out]mat: 演算結果を格納する行列
[in]vec: 移動量

与えられた引数から平行移動行列を作り、現在の行列に乗算します。

LNResult LNMatrix_Transpose ( const LNMatrix mat,
LNMatrix matOut 
)

転置行列を求めます。

Parameters
[in]mat: 処理の基になる行列
[out]matOut: 演算結果を格納する行列
LNResult LNMatrix_ViewTransformLH ( const LNVector3 pos,
const LNVector3 lookAt,
const LNVector3 upDir,
LNMatrix matOut 
)

左手座標系ビュー行列を作成します。

Parameters
[in]pos: 視点の位置を示す Vector3
[in]lookAt: 注視点を示す Vector3
[in]upDir: 上方向を示す Vector3
[out]matOut: 演算結果を格納する行列
LNResult LNMatrix_ViewTransformRH ( const LNVector3 pos,
const LNVector3 lookAt,
const LNVector3 upDir,
LNMatrix matOut 
)

右手座標系ビュー行列を作成します。

Parameters
[in]pos: 視点の位置を示す Vector3
[in]lookAt: 注視点を示す Vector3
[in]upDir: 上方向を示す Vector3
[out]matOut: 演算結果を格納する行列
LNResult LNQuaternion_Conjugate ( const LNQuaternion qua,
LNQuaternion outQua 
)

クォータニオンの共役を計算します。

Parameters
[in]qua: 処理の基になるクォータニオン
[out]outQua: 演算結果を格納する Quaternion 変数
LNResult LNQuaternion_Identity ( LNQuaternion qua)

単位クォータニオンを作成します。

Parameters
[out]qua: 結果を格納する Quaternion 変数
LNResult LNQuaternion_Multiply ( const LNQuaternion qua1,
const LNQuaternion qua2,
LNQuaternion outQua 
)

2 つのクォータニオンの積を計算します。

Parameters
[in]qua1: 処理の基になるクォータニオン
[in]qua2: 処理の基になるクォータニオン
[out]outQua: 演算結果を格納する Quaternion 変数
LNResult LNQuaternion_Normalize ( const LNQuaternion qua,
LNQuaternion outQua 
)

クォータニオンを正規化します。

Parameters
[in]qua: 処理の基になるクォータニオン
[out]outQua: 演算結果を格納する Quaternion 変数
LNResult LNQuaternion_RotationAxis ( const LNVector3 axis,
float  r,
LNQuaternion outQua 
)

任意の軸を回転軸にして回転するクォータニオンを作成します。

Parameters
[in]axis: 回転軸を示す Vector3 変数
[in]r: 回転角度 (ラジアン)
[out]outQua: 演算結果を格納する Quaternion 変数

与えられた軸が正規化されていない場合は正規化された軸を使用します。

LNResult LNQuaternion_RotationMatrix ( const LNMatrix mat,
LNQuaternion outQua 
)

回転行列からクォータニオンを作成します。

Parameters
[in]mat: 処理の基になる行列
[out]outQua: 演算結果を格納する Quaternion 変数
LNResult LNQuaternion_RotationYawPitchRoll ( float  yaw,
float  pitch,
float  roll,
LNQuaternion outQua 
)

ヨー、ピッチ、およびロールを指定してクォータニオンを作成します。

Parameters
[in]yaw: y 軸を中心とするヨー (ラジアン単位)
[in]pitch: x 軸を中心とするピッチ (ラジアン単位)
[in]roll: z 軸を中心とするロール (ラジアン単位)
[out]outQua: 演算結果を格納する Quaternion 変数
LNResult LNQuaternion_Set ( LNQuaternion qua,
float  x,
float  y,
float  z,
float  w 
)

クォータニオンのクラスです。

クォータニオンに値を設定します。

Parameters
[in]qua: 値を格納する Quaternion 変数のポインタ
[in]x: X 値
[in]y: Y 値
[in]z: Z 値
[in]w: W 値
LNResult LNQuaternion_Slerp ( const LNQuaternion qua1,
const LNQuaternion qua2,
float  t,
LNQuaternion outQua 
)

2 つのクォータニオンを球面線形補間します。

Parameters
[in]qua1: 処理の基になるクォータニオン
[in]qua2: 処理の基になるクォータニオン
[in]t: 補間値
[out]outQua: 演算結果を格納する Quaternion 変数
LNResult LNVector2_GetLength ( const LNVector2 vec,
float *  outLength 
)

2D ベクトルの長さを取得します。

Parameters
[in]vec: 処理の基になる 2D ベクトル
[out]outLength: ベクトルの長さを格納する変数
LNResult LNVector2_GetSquareLength ( const LNVector2 vec,
float *  outLength 
)

2D ベクトルの長さの2乗を取得します。

Parameters
[in]vec: 処理の基になる 2D ベクトル
[out]outLength: ベクトルの長さの2乗を格納する変数
LNResult LNVector2_Normalize ( const LNVector2 vec,
LNVector2 outVec 
)

2D ベクトルを正規化します。

Parameters
[in]vec: 処理の基になる 2D ベクトル
[out]outVec: 演算結果を格納する 2D ベクトル
LNResult LNVector2_NormalizeV ( LNVector2 vec)

2D ベクトルを正規化します。

Parameters
[in]vec: 処理対象の 2D ベクトル
LNResult LNVector2_Set ( LNVector2 vec,
float  x,
float  y 
)

2次元のベクトルのクラスです。

2D ベクトルに値を設定します。

Parameters
[in]vec: 値を格納する 2D ベクトル変数のポインタ
[in]x: X 値
[in]y: Y 値
LNResult LNVector3_CatmullRom ( const LNVector3 vec1,
const LNVector3 vec2,
const LNVector3 vec3,
const LNVector3 vec4,
float  t,
LNVector3 outVec 
)

指定された 3D ベクトルを Catmull-Rom 補間します。

Parameters
[in]vec1: 処理の基になる 3D ベクトル
[in]vec2: 処理の基になる 3D ベクトル ( t = 0.0 のときの値 )
[in]vec3: 処理の基になる 3D ベクトル ( t = 1.0 のときの値 )
[in]vec4: 処理の基になる 3D ベクトル
[in]t: 補間値 ( 0.0 ~ 1.0 )
[out]outVec: 演算結果を格納する 3D ベクトル
LNResult LNVector3_Cross ( const LNVector3 vec1,
const LNVector3 vec2,
LNVector3 outVec 
)

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

Parameters
[in]vec1: 処理の基になる 3D ベクトル
[in]vec2: 処理の基になる 3D ベクトル
[out]outVec: 演算結果を格納する 3D ベクトル
LNResult LNVector3_Dot ( const LNVector3 vec1,
const LNVector3 vec2,
float *  dot 
)

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

Parameters
[in]vec1: 処理の基になる 3D ベクトル
[in]vec2: 処理の基になる 3D ベクトル
[out]dot: ベクトルの内積を格納する変数
LNResult LNVector3_GetLength ( const LNVector3 vec,
float *  outLength 
)

3Dベクトルの長さを取得します。

Parameters
[in]vec: 処理の基になるベクトル
[out]outLength: ベクトルの長さを格納する変数
LNResult LNVector3_GetSquareLength ( const LNVector3 vec,
float *  outLength 
)

3D ベクトルの長さの2乗を計算する

Parameters
[in]vec: 処理の基になる Vector3
[out]outLength: ベクトルの長さの2乗を格納する変数
LNResult LNVector3_Lerp ( const LNVector3 vec1,
const LNVector3 vec2,
float  t,
LNVector3 outVec 
)

2 つの 3D ベクトル間を線形補間します。

Parameters
[in]vec1: 処理の基になる 3D ベクトル ( t = 0.0 のときの値 )
[in]vec2: 処理の基になる 3D ベクトル ( t = 1.0 のときの値 )
[in]t: 補間値 ( 0.0 ~ 1.0 )
[out]outVec: 演算結果を格納する 3D ベクトル
LNResult LNVector3_Normalize ( const LNVector3 vec,
LNVector3 outVec 
)

3D ベクトルを正規化します。

Parameters
[in]vec: 処理の基になる 3D ベクトル
[out]outVec: 演算結果を格納する 3D ベクトル
LNResult LNVector3_NormalizeV ( LNVector3 vec)

3D ベクトルを正規化します。

Parameters
[in]vec: 処理対象の 2D ベクトル
LNResult LNVector3_Reflect ( const LNVector3 vec,
const LNVector3 normal,
LNVector3 outVec 
)

指定された法線で反射させたベクトルを計算します。

Parameters
[in]vec: 処理の基になる 3D ベクトル
[in]normal: 面方向を表す法線 3D ベクトル
[out]outVec: 演算結果を格納する 3D ベクトル
LNResult LNVector3_Set ( LNVector3 vec,
float  x,
float  y,
float  z 
)

3 次元ベクトルのクラスです。

3Dベクトルに値を設定します。

Parameters
[in]vec: 値を格納する 3D ベクトル変数のポインタ
[in]x: X 値
[in]y: Y 値
[in]z: Z 値
LNResult LNVector3_SetVZ ( LNVector3 vec,
const LNVector2 vec2,
float  z 
)

2D ベクトル と Z値 を指定して、3Dベクトルに値を設定します。

Parameters
[out]vec: 値を格納する 3Dベクトル 変数のポインタ
[in]vec2: 2D ベクトル
[in]z: Z 値
LNResult LNVector3_Slide ( const LNVector3 vec,
const LNVector3 normal,
LNVector3 outVec 
)

指定された法線と方向から滑りベクトルを計算します。

Parameters
[in]vec: 処理の基になる 3D ベクトル
[in]normal: 面方向を表す法線 3D ベクトル
[out]outVec: 演算結果を格納する 3D ベクトル
LNResult LNVector3_Transform ( const LNVector3 vec,
const LNMatrix mat,
LNVector4 outVec 
)

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

Parameters
[in]vec: 処理の基になる 3D ベクトル
[in]mat: 処理の基になる 行列
[out]outVec: 演算結果を格納する 3D ベクトル

ベクトルを ( x, y, z, 1 ) として座標変換します。 結果の w は出力されません。
結果を w = 1 に射影する (x y z を w で除算) 場合は Vector3TransformCoord() を使用してください。

LNResult LNVector3_TransformCoord ( const LNVector3 vec,
const LNMatrix mat,
LNVector3 outVec 
)

指定された行列を使用して座標変換し、結果を w = 1 に射影します。

Parameters
[in]vec: 処理の基になる 3D ベクトル
[in]mat: 処理の基になる 行列
[out]outVec: 演算結果を格納する 3D ベクトル

ベクトルを ( x, y, z, 1 ) として座標変換し、 結果を w = 1 に射影 (x y z を w で除算) します。

LNResult LNVector4_Set ( LNVector4 vec,
float  x,
float  y,
float  z,
float  w 
)

4 次元ベクトルのクラスです。

4Dベクトルに値を設定します。

Parameters
[in]vec: 値を格納する4Dベクトル変数のポインタ
[in]x: X 値
[in]y: Y 値
[in]z: Z 値
[in]w: W 値