AR_Engine_SDK
Functions | Variables
XEMath.lua File Reference

Functions

function XEMath InvSqrt (fNumber) end
 
function XEMath FastAsin (Value) end
 
function XEMath ClampAxis (radian) end
 
function XEMath NormalizeAxis (radian) end
 
function XEMath Xmod (X, Y) end
 
function XEMath Atan2 (Y, X) end
 
function XEMath AreaOfTriangle (v1, v2, v3) end
 
function XEMath IsNegativeFloat (A) end
 
function XEMath IsNaN (A) end
 
function XEMath IsFinite (A) end
 
function XEMath IsNearlyZero (Value, ErrorTolerance) end
 
function XEMath SinCos (ScalarSin, ScalarCos, Value) end
 
function XEMath QuaternionToEuler (quat, fPitch, fYaw, fRoll) end
 
function XEMath QuaternionToEuler (quat) end
 
function XEMath EulerToMatrix (fPitch, fYaw, fRoll, mat) end
 
function XEMath EulerToMatrix (fPitch, fYaw, fRoll) end
 
function XEMath EulerToQuaternion (fPitch, fYaw, fRoll, quat) end
 
function XEMath EulerToQuaternion (fPitch, fYaw, fRoll) end
 
function XEMath DirAndUpToQuaternion (vForwardDir, vUp, quat) end
 
function XEMath DirAndUpToQuaternion (vForwardDir, vUp) end
 
function XEMath QuaternionToDirAndUp (quat, vForwardDir, vUp) end
 
function XEMath QuaternionToDirAndUp (quat) end
 
function XEMath LocationDirAndUpToMatrix (vLocation, vForwardDir, vUp, mat4) end
 
function XEMath LocationDirAndUpToMatrix (vLocation, vForwardDir, vUp) end
 
function XEMath MatrixToLocationAndDirAndUp (mat4, vLocation, vForwardDir, vUp) end
 
function XEMath MatrixToLocationAndDirAndUp (mat4) end
 
function XEMath GetScaleFromMatrix (mat) end
 
function XEMath GetQuaternionFromMatrix (mat) end
 
function XEMath GetMatrixFromQuaternion (quat) end
 
function XEMath EliminateScaleFromMatrix (mat) end
 
function XEMath EliminateRotateFromMatrix (mat) end
 
function XEMath EliminateTranslateFromMatrix (mat) end
 
function XEMath GenerateTranslateMatrixForVector (vTranslate) end
 
function XEMath GenerateScaleMatrixForVector (vScale) end
 
function XEMath GenerateScaleMatrixForVector (vScale, vOriginPoint) end
 
function XEMath RotateMatrixWorld (mat, quat) end
 
function XEMath ScaleMatrixWorld (mat, vScale) end
 
function XEMath RotateVector (quat, vec) end
 
function XEMath UnrotateVector (quat, vec) end
 
function XEMath Is2MatrixClosed (mat1, mat2, fEpsilon) end
 
function XEMath GenerateOrthoProjMatrix (fLeft, fRight, fButtom, fTop, fNear, fFar) end
 
function XEMath GenerateMostNearSizeWithRate (vOriginSize, fSizeRate, nStepSize) end
 
function XEMath ComputerMin2nSubSquare (nSize) end
 
function XEMath GenerateMatrix (vTranslate, quatRotate, vScale) end
 
function XEMath MultMatrix (mat1, mat2) end
 
function XEMath GetCameraClipSpaceTransformMatrix () end
 

Variables

 XEMath = {}
 

Function Documentation

◆ AreaOfTriangle()

function XEMath AreaOfTriangle ( v1  ,
v2  ,
v3   
)

计算三角形面积.

Parameters
v1XVECTOR2 点坐标1
v2XVECTOR2 点坐标2
v3XVECTOR2 点坐标3
Returns
number 结果

◆ Atan2()

function XEMath Atan2 ( ,
 
)

计算 y/x 反正切值.

Parameters
Ynumber 输入值Y
Xnumber 输入值X
Returns
number 结果

◆ ClampAxis()

function XEMath ClampAxis ( radian  )

把一个角度规范化到[0,2*PI).

Parameters
radiannumber 输入值
Returns
number 规范化结果

◆ ComputerMin2nSubSquare()

function XEMath ComputerMin2nSubSquare ( nSize  )

计算下个2的幂值

  1. 最靠近这个数 2. 大于或等于这个数 3. 是2的N次方
    Parameters
    nSizenumber 输入数值
    Returns
    number 输出幂值

◆ DirAndUpToQuaternion() [1/2]

function XEMath DirAndUpToQuaternion ( vForwardDir  ,
vUp  ,
quat   
)

前方向和上方向向量转四元数

Parameters
vForwardDirXVECTOR3 前方向向量
vUpXVECTOR3 上方向向量
quatXQUATERNION 输出的四元数
Returns
void

◆ DirAndUpToQuaternion() [2/2]

function XEMath DirAndUpToQuaternion ( vForwardDir  ,
vUp   
)

XEMath_DirAndUpToQuaternion01

Parameters
vForwardDirXVECTOR3
vUpXVECTOR3
Returns
XQUATERNION
void

◆ EliminateRotateFromMatrix()

function XEMath EliminateRotateFromMatrix ( mat  )

从矩阵中去除旋转信息

Parameters
matXMATRIX4 矩阵
Returns
XMATRIX4

◆ EliminateScaleFromMatrix()

function XEMath EliminateScaleFromMatrix ( mat  )

从矩阵中去除缩放信息

Parameters
matXMATRIX4 矩阵
Returns
XMATRIX4 返回自身

◆ EliminateTranslateFromMatrix()

function XEMath EliminateTranslateFromMatrix ( mat  )

从矩阵中去除位置信息

Parameters
matXMATRIX4 矩阵
Returns
XMATRIX4

◆ EulerToMatrix() [1/2]

function XEMath EulerToMatrix ( fPitch  ,
fYaw  ,
fRoll  ,
mat   
)

欧拉角转矩阵

Parameters
fPitchnumber 俯仰角
fYawnumber 偏航角
fRollnumber 翻滚角
matXMATRIX4 输出的矩阵
Returns
void

◆ EulerToMatrix() [2/2]

function XEMath EulerToMatrix ( fPitch  ,
fYaw  ,
fRoll   
)

XEMath_EulerToMatrix01

Parameters
fPitchnumber
fYawnumber
fRollnumber
Returns
XMATRIX4
void

◆ EulerToQuaternion() [1/2]

function XEMath EulerToQuaternion ( fPitch  ,
fYaw  ,
fRoll  ,
quat   
)

欧拉角转四元数

Parameters
fPitchnumber 俯仰角
fYawnumber 偏航角
fRollnumber 翻滚角
quatXQUATERNION 输出的四元数
Returns
void

◆ EulerToQuaternion() [2/2]

function XEMath EulerToQuaternion ( fPitch  ,
fYaw  ,
fRoll   
)

XEMath_EulerToQuaternion01

Parameters
fPitchnumber
fYawnumber
fRollnumber
Returns
XQUATERNION
void

◆ FastAsin()

function XEMath FastAsin ( Value  )

计算一个浮点数的反正弦.

Parameters
Valuenumber 输入值
Returns
number 反正弦结果

◆ GenerateMatrix()

function XEMath GenerateMatrix ( vTranslate  ,
quatRotate  ,
vScale   
)

根据平移、旋转、缩放得到矩阵

Parameters
vTranslateXVECTOR3 代表平移信息的向量
quatRotateXQUATERNION 代表旋转信息的四元数
vScaleXVECTOR3 代表缩放信息的向量
Returns
XMATRIX4 矩阵

◆ GenerateMostNearSizeWithRate()

function XEMath GenerateMostNearSizeWithRate ( vOriginSize  ,
fSizeRate  ,
nStepSize   
)

产生宽高等比(fSizeRate)的最接近原始宽高(vOriginSize)的宽高

Parameters
vOriginSizeXVECTOR2 原始宽高
fSizeRatenumber 宽高比
nStepSizenumber 测试步进长度默认为1.f
Returns
XVECTOR2 结果宽高

◆ GenerateOrthoProjMatrix()

function XEMath GenerateOrthoProjMatrix ( fLeft  ,
fRight  ,
fButtom  ,
fTop  ,
fNear  ,
fFar   
)

生成一个正交投影矩阵

Parameters
fLeftnumber 左平面到原点距离
fRightnumber 右平面到原点距离
fButtomnumber 底平面到原点距离
fTopnumber 上平面到原点距离
fNearnumber 近平面到原点距离
fFarnumber 远平面到原点距离
Returns
XMATRIX4 正交投影矩阵

◆ GenerateScaleMatrixForVector() [1/2]

function XEMath GenerateScaleMatrixForVector ( vScale  )

根据缩放信息生成缩放矩阵

Parameters
vScaleXVECTOR3 缩放信息
Returns
XMATRIX4 缩放矩阵矩阵

◆ GenerateScaleMatrixForVector() [2/2]

function XEMath GenerateScaleMatrixForVector ( vScale  ,
vOriginPoint   
)

XEMath_GenerateScaleMatrixForVector01

Parameters
vScaleXVECTOR3
vOriginPointXVECTOR3
Returns
XMATRIX4

◆ GenerateTranslateMatrixForVector()

function XEMath GenerateTranslateMatrixForVector ( vTranslate  )

根据平移信息生成平移矩阵

Parameters
vTranslateXVECTOR3 平移信息
Returns
XMATRIX4 平移矩阵

◆ GetCameraClipSpaceTransformMatrix()

function XEMath GetCameraClipSpaceTransformMatrix ( )

获取引擎在相机裁剪空间里的变换矩阵(如果按OpenGL顶点NDC坐标对顶点变换,则MVP矩阵需要乘以此矩阵)

Returns
XMATRIX4

◆ GetMatrixFromQuaternion()

function XEMath GetMatrixFromQuaternion ( quat  )

四元数转矩阵

Parameters
quatXQUATERNION 输入的四元数
Returns
XMATRIX4 输出的矩阵

◆ GetQuaternionFromMatrix()

function XEMath GetQuaternionFromMatrix ( mat  )

从矩阵中获取四元数信息

Parameters
matXMATRIX4 输入的矩阵
Returns
XQUATERNION 四元数信息

◆ GetScaleFromMatrix()

function XEMath GetScaleFromMatrix ( mat  )

从矩阵中获取缩放信息

Parameters
matXMATRIX4 输入的矩阵
Returns
XVECTOR3 缩放信息

◆ InvSqrt()

function XEMath InvSqrt ( fNumber  )

平方根倒数

Parameters
fNumbernumber 输入数值
Returns
number 输出数值

◆ Is2MatrixClosed()

function XEMath Is2MatrixClosed ( mat1  ,
mat2  ,
fEpsilon   
)

判断两个矩阵是否相等

Parameters
mat1XMATRIX4 矩阵1
mat2XMATRIX4 矩阵2
fEpsilonnumber 精度,默认1.e-6f
Returns
boolean 是否相等

◆ IsFinite()

function XEMath IsFinite ( )

如果是一个有限数值返回true (not NaN and not Infinity).

Parameters
Anumber
Returns
boolean

◆ IsNaN()

function XEMath IsNaN ( )

判定浮点型数据是否溢出

Parameters
Anumber 浮点数
Returns
boolean 是否溢出

◆ IsNearlyZero()

function XEMath IsNearlyZero ( Value  ,
ErrorTolerance   
)

判断一个浮点数是否接近0.

Parameters
Valuenumber
ErrorTolerancenumber
Returns
boolean

◆ IsNegativeFloat()

function XEMath IsNegativeFloat ( )

是否是负浮点数.

Parameters
Anumber 判断的浮点数
Returns
boolean 结果

◆ LocationDirAndUpToMatrix() [1/2]

function XEMath LocationDirAndUpToMatrix ( vLocation  ,
vForwardDir  ,
vUp  ,
mat4   
)

位置、前方向和上方向向量转矩阵

Parameters
vLocationXVECTOR3 位置坐标
vForwardDirXVECTOR3 前方向向量
vUpXVECTOR3 上方向向量
mat4XMATRIX4 输出的矩阵
Returns
void

◆ LocationDirAndUpToMatrix() [2/2]

function XEMath LocationDirAndUpToMatrix ( vLocation  ,
vForwardDir  ,
vUp   
)

XEMath_LocationDirAndUpToMatrix01

Parameters
vLocationXVECTOR3
vForwardDirXVECTOR3
vUpXVECTOR3
Returns
XMATRIX4
void

◆ MatrixToLocationAndDirAndUp() [1/2]

function XEMath MatrixToLocationAndDirAndUp ( mat4  ,
vLocation  ,
vForwardDir  ,
vUp   
)

矩阵转位置、前方向和上方向向量

Parameters
mat4XMATRIX4 输入的矩阵
vLocationXVECTOR3 位置坐标
vForwardDirXVECTOR3 前方向向量
vUpXVECTOR3 上方向向量
Returns
void

◆ MatrixToLocationAndDirAndUp() [2/2]

function XEMath MatrixToLocationAndDirAndUp ( mat4  )

XEMath_MatrixToLocationAndDirAndUp01

Parameters
mat4XMATRIX4
Returns
XVECTOR3
XVECTOR3
XVECTOR3
void

◆ MultMatrix()

function XEMath MultMatrix ( mat1  ,
mat2   
)

矩阵相乘

Parameters
mat1XMATRIX4 矩阵1
mat2XMATRIX4 矩阵2
Returns
XMATRIX4 返回相乘结果

◆ NormalizeAxis()

function XEMath NormalizeAxis ( radian  )

把一个角度规范化到(-PI,PI].

Parameters
radiannumber 输入值
Returns
number 规范化结果

◆ QuaternionToDirAndUp() [1/2]

function XEMath QuaternionToDirAndUp ( quat  ,
vForwardDir  ,
vUp   
)

四元数转前方向和上方向向量

Parameters
quatXQUATERNION 输入的四元数
vForwardDirXVECTOR3 前方向向量
vUpXVECTOR3 上方向向量
Returns
void

◆ QuaternionToDirAndUp() [2/2]

function XEMath QuaternionToDirAndUp ( quat  )

XEMath_QuaternionToDirAndUp01

Parameters
quatXQUATERNION
Returns
XVECTOR3
XVECTOR3
void

◆ QuaternionToEuler() [1/2]

function XEMath QuaternionToEuler ( quat  ,
fPitch  ,
fYaw  ,
fRoll   
)

四元数转欧拉角

Parameters
quatXQUATERNION 输入的四元数
fPitchnumber [out]俯仰角
fYawnumber [out]偏航角
fRollnumber [out]翻滚角
Returns
void

◆ QuaternionToEuler() [2/2]

function XEMath QuaternionToEuler ( quat  )

XEMath_QuaternionToEuler01

Parameters
quatXQUATERNION
Returns
number
number
number
void

◆ RotateMatrixWorld()

function XEMath RotateMatrixWorld ( mat  ,
quat   
)

旋转矩阵

Parameters
matXMATRIX4 矩阵
quatXQUATERNION 旋转四元数信息
Returns
void

◆ RotateVector()

function XEMath RotateVector ( quat  ,
vec   
)

对Vec按四元数quat旋转

Parameters
quatXQUATERNION 旋转四元数信息
vecXVECTOR3 输入的向量
Returns
XVECTOR3 旋转后的向量

◆ ScaleMatrixWorld()

function XEMath ScaleMatrixWorld ( mat  ,
vScale   
)

缩放矩阵

Parameters
matXMATRIX4 矩阵
vScaleXVECTOR3 缩放信息
Returns
void

◆ SinCos()

function XEMath SinCos ( ScalarSin  ,
ScalarCos  ,
Value   
)

返回对Value的 sin值、cos值.

Parameters
ScalarSinnumber [out]Value的sin值
ScalarCosnumber [out]Value的cos值
Valuenumber 输入数据
Returns
void

◆ UnrotateVector()

function XEMath UnrotateVector ( quat  ,
vec   
)

对vec按四元数quat的逆旋转

Parameters
quatXQUATERNION 旋转四元数信息
vecXVECTOR3 输入的向量
Returns
XVECTOR3 逆旋转后的向量

◆ Xmod()

function XEMath Xmod ( ,
 
)

取模运算.

Parameters
Xnumber 输入值X
Ynumber 输入值Y
Returns
number 结果

Variable Documentation

◆ XEMath

XEMath = {}