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