Files
OpenRA/api/lua/luxmath.lua
2011-09-04 19:01:25 +02:00

824 lines
35 KiB
Lua

--[[// lxm | Lux Math
typedef float lxVector2 [ 2 ] ;
typedef float lxVector3 [ 3 ] ;
typedef float lxVector4 [ 4 ] ;
typedef float lxPlane [ 4 ] ;
typedef float lxMatrix44 [ 16 ] ;
typedef float lxMatrix34 [ 12 ] ;
typedef float lxQuat [ 4 ] ;
typedef float * lxVector2PTR ;
typedef float * lxVector3PTR ;
typedef float * lxVector4PTR ;
typedef float * lxPlanePTR ;
typedef float * lxMatrix44PTR ;
typedef float * lxMatrix34PTR ;
typedef float * lxQuatPTR ;
typedef const float * lxVector2CPTR ;
typedef const float * lxVector3CPTR ;
typedef const float * lxVector4CPTR ;
typedef const float * lxPlaneCPTR ;
typedef const float * lxMatrix44CPTR ;
typedef const float * lxMatrix34CPTR ;
typedef const float * lxQuatCPTR ;
typedef __declspec ( align ( 16 ) ) lxMatrix44 lxMatrix44SIMD ;
typedef __declspec ( align ( 16 ) ) lxVector4 lxVector4SIMD ;
typedef __declspec ( align ( 16 ) ) lxVector4 lxVector3SIMD ;
typedef struct lxFrustumPlane_s * lxFrustumPlanePTR ;
typedef const struct lxFrustumPlane_s * lxFrustumPlaneCPTR ;
typedef struct lxFrustum_s * lxFrustumPTR ;
typedef const struct lxFrustum_s * lxFrustumCPTR ;
typedef struct lxBoundingBox_s * lxBoundingBoxPTR ;
typedef const struct lxBoundingBox_s * lxBoundingBoxCPTR ;
typedef struct lxBoundingBoxCenter_s * lxBoundingBoxCenterPTR ;
typedef const struct lxBoundingBoxCenter_s * lxBoundingBoxCenterCPTR ;
typedef struct lxBoundingSphere_s * lxBoundingSpherePTR ;
typedef const struct lxBoundingSphere_s * lxBoundingSphereCPTR ;
typedef struct lxBoundingCone_s * lxBoundingConePTR ;
typedef const struct lxBoundingCone_s * lxBoundingConeCPTR ;
typedef struct lxBoundingCapsule_s * lxBoundingCapsulePTR ;
typedef const struct lxBoundingCapsule_s * lxBoundingCapsuleCPTR ;
typedef enum lxFrustumPlaneType_e
{
LUX_FRUSTUM_TOP , LUX_FRUSTUM_BOTTOM , LUX_FRUSTUM_NEAR , LUX_FRUSTUM_FAR , LUX_FRUSTUM_LEFT , LUX_FRUSTUM_RIGHT , LUX_FRUSTUM_PLANES , }
lxFrustumPlaneType_t ;
typedef enum lxFrustumCornerType_e
{
LUX_FRUSTUM_C_NTR , LUX_FRUSTUM_C_NTL , LUX_FRUSTUM_C_NBL , LUX_FRUSTUM_C_NBR , LUX_FRUSTUM_C_FTR , LUX_FRUSTUM_C_FTL , LUX_FRUSTUM_C_FBL , LUX_FRUSTUM_C_FBR , LUX_FRUSTUM_CORNERS , }
lxFrustumCornerType_t ;
typedef enum lxCullType_e
{
LUX_CULL_INTERSECT = - 1 , LUX_CULL_OUTSIDE = 0 , LUX_CULL_INSIDE = 1 , }
lxCullType_t ;
typedef struct lxFrustumPlane_s
{
lxPlane pvec ;
union
{
int n [ 3 ] ;
struct
{
int nx ;
int ny ;
int nz ;
int _npad ;
}
;
}
;
union
{
int p [ 3 ] ;
struct
{
int px ;
int py ;
int pz ;
int _ppad ;
}
;
}
;
}
lxFrustumPlane_t ;
typedef struct lxFrustum_s
{
lxFrustumPlane_t fplanes [ LUX_FRUSTUM_PLANES ] ;
}
lxFrustum_t ;
typedef struct lxBoundingBox_s
{
lxVector4 min ;
lxVector4 max ;
}
lxBoundingBox_t ;
typedef struct lxBoundingBoxCenter_s
{
lxVector4 center ;
lxVector4 size ;
}
lxBoundingBoxCenter_t ;
typedef struct lxBoundingSphere_s
{
lxVector3 center ;
float radius ;
}
lxBoundingSphere_t ;
typedef struct lxBoundingCone_s
{
lxVector4 top ;
lxVector4 axis ;
float sinDiv ;
float sinSqr ;
float cosSqr ;
float _pad ;
}
lxBoundingCone_t ;
typedef struct lxBoundingCapsule_s
{
lxVector4 origin ;
lxVector4 toEnd ;
float radius ;
float radiusSqr ;
float _pad [ 2 ] ;
}
lxBoundingCapsule_t ;
booln lxMinMax_intersectsV ( const float selfminmax [ 6 ] , const float otherminmax [ 6 ] ) ;
void lxBoundingBox_init ( lxBoundingBoxPTR bbox ) ;
void lxBoundingBox_toCenter ( lxBoundingBoxCPTR bbox , lxVector3 center , lxVector3 size ) ;
lxBoundingBoxPTR lxBoundingBox_copy ( lxBoundingBoxPTR dst , lxBoundingBoxCPTR src ) ;
lxBoundingSpherePTR lxBoundingSphere_copy ( lxBoundingSpherePTR dst , lxBoundingSphereCPTR src ) ;
lxBoundingBoxPTR lxBoundingBox_merge ( lxBoundingBoxPTR out , lxBoundingBoxCPTR a , lxBoundingBoxCPTR b ) ;
booln lxBoundingBox_mergeChange ( lxBoundingBoxPTR out , lxBoundingBoxCPTR a , lxBoundingBoxCPTR b ) ;
booln lxBoundingSphere_mergeChange ( lxBoundingSpherePTR out , lxBoundingSphereCPTR a , lxBoundingSphereCPTR b ) ;
void lxBoundingBox_toCenterBox ( lxBoundingBoxCPTR box , lxBoundingBoxCenterPTR ctr ) ;
void lxBoundingBox_fromCenterBox ( lxBoundingBoxPTR box , lxBoundingBoxCenterCPTR ctr ) ;
lxBoundingSpherePTR lxBoundingBox_toSphere ( lxBoundingBoxCPTR bbox , lxBoundingSpherePTR sphere ) ;
void lxBoundingBox_toSphereV ( const lxVector3 min , const lxVector3 max , lxVector3 center , float * radius ) ;
lxBoundingCapsulePTR lxBoundingBox_toCapsule ( lxBoundingBoxCPTR bbox , lxBoundingCapsulePTR capsule ) ;
lxBoundingBoxPTR lxBoundingBox_transform ( lxBoundingBoxPTR out , lxBoundingBoxCPTR in , lxMatrix44CPTR trans ) ;
void lxBoundingBox_transformBoxCorners ( lxBoundingBoxCPTR in , lxMatrix44CPTR trans , lxVector3 box [ 8 ] ) ;
void lxBoundingBox_transformV ( lxVector3 outmins , lxVector3 outmaxs , const lxVector3 mins , const lxVector3 maxs , lxMatrix44CPTR trans ) ;
void lxBoundingBox_fromCorners ( lxBoundingBoxPTR bbox , const lxVector3 vecs [ 8 ] ) ;
void lxBoundingCorners_fromCamera ( lxVector3 vecs [ 8 ] , lxMatrix44CPTR mat , const float fov , const float frontplane , const float backplane , const float aspect ) ;
booln lxBoundingBox_intersect ( lxBoundingBoxCPTR a , lxBoundingBoxCPTR b ) ;
booln lxBoundingBox_checkPoint ( lxBoundingBoxCPTR out , const lxVector3 point ) ;
booln lxBoundingCone_checkSphere ( lxBoundingConeCPTR cone , lxBoundingSphereCPTR sphere ) ;
void lxBoundingSphereCone_fromCamera ( lxBoundingSpherePTR sphere , lxBoundingConePTR cone , float frontplane , float backplane , const lxVector3 pos , const lxVector3 dir , float fov ) ;
void lxBoundingCone_fromFrustumCorners ( lxBoundingConePTR cone , const lxVector3 box [ LUX_FRUSTUM_CORNERS ] ) ;
void lxBoundingSphere_fromFrustumCorners ( lxBoundingSpherePTR sphere , const lxVector3 box [ LUX_FRUSTUM_CORNERS ] ) ;
void lxFrustum_update ( lxFrustumPTR frustum , lxMatrix44CPTR viewproj ) ;
booln lxFrustum_checkPoint ( lxFrustumCPTR frustum , lxVector3CPTR vec ) ;
booln lxFrustum_checkSphere ( lxFrustumCPTR frustum , lxBoundingSphereCPTR ) ;
booln lxFrustum_checkSphereCoherent ( lxFrustumCPTR pFrustum , lxBoundingSphereCPTR sphere , int * plane ) ;
booln lxFrustum_checkSphereFull ( lxFrustumCPTR frustum , lxBoundingSphereCPTR ) ;
booln lxFrustum_checkBoundingBox ( lxFrustumCPTR frustum , lxBoundingBoxCPTR bbox ) ;
booln lxFrustum_checkBoundingBoxCoherent ( lxFrustumCPTR pFrustum , lxBoundingBoxCPTR bbox , int * plane ) ;
lxCullType_t lxFrustum_cullBoundingBoxMaskedCoherent ( lxFrustumCPTR pFrustum , lxBoundingBoxCPTR bbox , int in_mask , int * out_mask , int * inoutstart_id ) ;
lxCullType_t lxFrustum_cullPoints ( lxFrustumCPTR frustum , const lxVector4 * vecarray , const int numVec ) ;
lxCullType_t lxFrustum_cullBoundingBox ( lxFrustumCPTR frustum , lxBoundingBoxCPTR bbox ) ;
void lxFrustum_getCorners ( lxFrustumCPTR frustum , lxVector3 box [ LUX_FRUSTUM_CORNERS ] ) ;
void lxFrustum_fromCorners ( lxFrustumPTR frustum , const lxVector3 box [ LUX_FRUSTUM_CORNERS ] ) ;
void lxFrustum_updateSigns ( lxFrustumPTR frustum ) ;
lxMatrix44CPTR lxMatrix44GetIdentity ( ) ;
void lxMatrix44Identity ( lxMatrix44PTR dst ) ;
void lxMatrix44Copy ( lxMatrix44PTR dst , lxMatrix44CPTR src ) ;
void lxMatrix44CopyRot ( lxMatrix44PTR dst , lxMatrix44CPTR src ) ;
void lxMatrix44CopyRotTransposed ( lxMatrix44PTR dst , lxMatrix44CPTR src ) ;
void lxMatrix44SetTranslation ( lxMatrix44PTR dst , lxVector3CPTR translation ) ;
void lxMatrix44SetInvTranslation ( lxMatrix44PTR dst , lxVector3CPTR translation ) ;
void lxMatrix44SetScale ( lxMatrix44PTR dst , lxVector3CPTR scale ) ;
void lxMatrix44PreScale ( lxMatrix44PTR dst , lxMatrix44CPTR mat , lxVector3CPTR scale ) ;
void lxMatrix44SetRotRows ( lxMatrix44PTR dst , float a , float b , float c , float d , float e , float f , float g , float h , float i ) ;
float * lxMatrix44GetTranslation ( lxMatrix44CPTR mat , lxVector3PTR vec ) ;
void lxMatrix44Clear ( lxMatrix44PTR mat ) ;
void lxMatrix44ClearRot ( lxMatrix44PTR mat ) ;
void lxMatrix44ClearTranslation ( lxMatrix44PTR mat ) ;
void lxMatrix44VectorTransform ( lxMatrix44CPTR mat , lxVector3PTR v1 ) ;
void lxMatrix44VectorInvTransform ( lxMatrix44CPTR mat , lxVector3PTR pVect ) ;
void lxMatrix44VectorRotate ( lxMatrix44CPTR mat , lxVector3PTR v1 ) ;
void lxMatrix44VectorInvRotate ( lxMatrix44CPTR mat , lxVector3PTR pVect ) ;
void lxMatrix44VectorTranslate ( lxMatrix44CPTR mat , lxVector3PTR pVect ) ;
void lxMatrix44VectorInvTranslate ( lxMatrix44CPTR mat , lxVector3PTR pVect ) ;
void lxMatrix44Multiply ( lxMatrix44PTR dst , lxMatrix44CPTR mat1 , lxMatrix44CPTR mat2 ) ;
void lxMatrix44Multiply1 ( lxMatrix44PTR mat1 , lxMatrix44CPTR mat2 ) ;
void lxMatrix44Multiply2 ( lxMatrix44CPTR mat1 , lxMatrix44PTR mat2 ) ;
void lxMatrix44MultiplyFull ( lxMatrix44PTR clip , lxMatrix44CPTR proj , lxMatrix44CPTR modl ) ;
void lxMatrix44MultiplyRot ( lxMatrix44PTR dst , lxMatrix44CPTR mat1 , lxMatrix44CPTR mat2 ) ;
void lxMatrix44MultiplyRot1 ( lxMatrix44PTR mat1 , lxMatrix44CPTR mat2 ) ;
void lxMatrix44MultiplyRot2 ( lxMatrix44CPTR mat1 , lxMatrix44PTR mat2 ) ;
void lxMatrix44Orthonormalize ( lxMatrix44PTR dst , lxMatrix44PTR src ) ;
void lxMatrix44Transpose ( lxMatrix44PTR dst , lxMatrix44CPTR src ) ;
void lxMatrix44Transpose1 ( lxMatrix44PTR mat ) ;
void lxMatrix44TransposeRot ( lxMatrix44PTR dst , lxMatrix44CPTR src ) ;
void lxMatrix44TransposeRot1 ( lxMatrix44PTR mat ) ;
void lxMatrix44TransposeRotIdentity ( lxMatrix44PTR dst , lxMatrix44CPTR src ) ;
void lxMatrix44Invert ( lxMatrix44PTR dst , lxMatrix44CPTR src ) ;
void lxMatrix44Invert1 ( lxMatrix44PTR mat ) ;
void lxMatrix44AffineInvert ( lxMatrix44PTR dst , lxMatrix44CPTR src ) ;
void lxMatrix44Orient ( lxMatrix44PTR mat , lxVector3CPTR forward , lxVector3CPTR up , int axis ) ;
void lxMatrix44LookAt ( lxMatrix44PTR mat , lxVector3CPTR from , lxVector3CPTR to , lxVector3CPTR up ) ;
void lxMatrix44FromEulerZYX ( lxMatrix44PTR mat , lxVector3CPTR angles ) ;
void lxMatrix44FromEulerZYXFast ( lxMatrix44PTR mat , lxVector3CPTR angles ) ;
void lxMatrix44FromEulerZYXdeg ( lxMatrix44PTR mat , lxVector3CPTR angles ) ;
void lxMatrix44FromEulerXYZ ( lxMatrix44PTR mat , lxVector3PTR angles ) ;
void lxMatrix44FromEulerXYZFast ( lxMatrix44PTR mat , lxVector3PTR angles ) ;
void lxMatrix44FromAngleAxis ( lxMatrix44PTR mat , lxVector3CPTR axis , float cos , float sin , float oneminuscos ) ;
void lxMatrix44FromAngleAxisFast ( lxMatrix44PTR mat , float anglerad , lxVector3CPTR axis ) ;
void lxMatrix44RotateAngle ( lxMatrix44PTR mat , lxVector3PTR from , lxVector3PTR to ) ;
void lxMatrix44RotateAroundVector ( lxMatrix44PTR mat , lxVector3PTR axis , float cos , float sin , float oneminuscos ) ;
void lxMatrix44RotateAroundVectorFast ( lxMatrix44PTR mat , lxVector3PTR axis , float angleRad ) ;
void lxMatrix44RotateAroundPointFast ( lxMatrix44PTR mat , lxVector3CPTR center , lxVector3CPTR angles ) ;
void lxMatrix44ToEulerXYZ ( lxMatrix44CPTR mat , lxVector3PTR angles ) ;
void lxMatrix44ToEulerZYX ( lxMatrix44CPTR mat , lxVector3PTR angles ) ;
void lxMatrix44Perspective ( lxMatrix44PTR mat , const float fov , const float front , const float back , const float aspect ) ;
void lxMatrix44PerspectiveInf ( lxMatrix44PTR mat , const float fov , const float front , const float aspect ) ;
void lxMatrix44Ortho ( lxMatrix44PTR mat , const float height , const float front , const float back , const float aspect ) ;
void lxMatrix44OrthoDirect ( lxMatrix44PTR mat , const float left , const float right , const float bottom , const float top , const float front , const float back ) ;
void lxMatrix44PlaneProjection ( lxMatrix44PTR mat , lxVector3CPTR planenormal ) ;
void lxMatrix44ModifyProjectionClipplane ( lxMatrix44PTR projmatrix , lxMatrix44CPTR mview , lxMatrix44CPTR mviewinv , lxVector4CPTR clipPlane ) ;
void lxMatrix44Reflection ( lxMatrix44PTR mat , lxVector4PTR plane ) ;
float lxMatrix44CompareRot ( lxMatrix44PTR mat1 , lxMatrix44PTR mat2 ) ;
void lxMatrix44Swizzle1 ( lxMatrix44PTR mat , uint axis [ 3 ] , lxVector3PTR dirs ) ;
extern const float lx_gMatrix44_ident [ 16 ] ;
float16 lxFloat32To16 ( float fval ) ;
float lxFloat16To32 ( float16 ival ) ;
]]
--auto-generated api from ffi headers
local api =
{
["lx_gMatrix44_ident"] = { type ='value', description = "extern const float lx_gMatrix44_ident[16]", valuetype = nil, },
["LUX_FRUSTUM_TOP"] = { type ='value', },
["LUX_FRUSTUM_BOTTOM"] = { type ='value', },
["LUX_FRUSTUM_NEAR"] = { type ='value', },
["LUX_FRUSTUM_FAR"] = { type ='value', },
["LUX_FRUSTUM_LEFT"] = { type ='value', },
["LUX_FRUSTUM_RIGHT"] = { type ='value', },
["LUX_FRUSTUM_PLANES"] = { type ='value', },
["LUX_FRUSTUM_C_NTR"] = { type ='value', },
["LUX_FRUSTUM_C_NTL"] = { type ='value', },
["LUX_FRUSTUM_C_NBL"] = { type ='value', },
["LUX_FRUSTUM_C_NBR"] = { type ='value', },
["LUX_FRUSTUM_C_FTR"] = { type ='value', },
["LUX_FRUSTUM_C_FTL"] = { type ='value', },
["LUX_FRUSTUM_C_FBL"] = { type ='value', },
["LUX_FRUSTUM_C_FBR"] = { type ='value', },
["LUX_FRUSTUM_CORNERS"] = { type ='value', },
["LUX_CULL_INTERSECT"] = { type ='value', },
["LUX_CULL_OUTSIDE"] = { type ='value', },
["LUX_CULL_INSIDE"] = { type ='value', },
["lxMinMax_intersectsV"] = { type ='function',
description = "",
returns = "(booln)",
valuetype = nil,
args = "(const float selfminmax [ 6 ] , const float otherminmax [ 6 ])", },
["lxBoundingBox_init"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxBoundingBoxPTR bbox)", },
["lxBoundingBox_toCenter"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxBoundingBoxCPTR bbox , lxVector3 center , lxVector3 size)", },
["lxBoundingBox_copy"] = { type ='function',
description = "",
returns = "(lxBoundingBoxPTR)",
valuetype = "lxm.lxBoundingBox_t",
args = "(lxBoundingBoxPTR dst , lxBoundingBoxCPTR src)", },
["lxBoundingSphere_copy"] = { type ='function',
description = "",
returns = "(lxBoundingSpherePTR)",
valuetype = "lxm.lxBoundingSphere_t",
args = "(lxBoundingSpherePTR dst , lxBoundingSphereCPTR src)", },
["lxBoundingBox_merge"] = { type ='function',
description = "",
returns = "(lxBoundingBoxPTR)",
valuetype = "lxm.lxBoundingBox_t",
args = "(lxBoundingBoxPTR out , lxBoundingBoxCPTR a , lxBoundingBoxCPTR b)", },
["lxBoundingBox_mergeChange"] = { type ='function',
description = "",
returns = "(booln)",
valuetype = nil,
args = "(lxBoundingBoxPTR out , lxBoundingBoxCPTR a , lxBoundingBoxCPTR b)", },
["lxBoundingSphere_mergeChange"] = { type ='function',
description = "",
returns = "(booln)",
valuetype = nil,
args = "(lxBoundingSpherePTR out , lxBoundingSphereCPTR a , lxBoundingSphereCPTR b)", },
["lxBoundingBox_toCenterBox"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxBoundingBoxCPTR box , lxBoundingBoxCenterPTR ctr)", },
["lxBoundingBox_fromCenterBox"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxBoundingBoxPTR box , lxBoundingBoxCenterCPTR ctr)", },
["lxBoundingBox_toSphere"] = { type ='function',
description = "",
returns = "(lxBoundingSpherePTR)",
valuetype = "lxm.lxBoundingSphere_t",
args = "(lxBoundingBoxCPTR bbox , lxBoundingSpherePTR sphere)", },
["lxBoundingBox_toSphereV"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(const lxVector3 min , const lxVector3 max , lxVector3 center , float * radius)", },
["lxBoundingBox_toCapsule"] = { type ='function',
description = "",
returns = "(lxBoundingCapsulePTR)",
valuetype = "lxm.lxBoundingCapsule_t",
args = "(lxBoundingBoxCPTR bbox , lxBoundingCapsulePTR capsule)", },
["lxBoundingBox_transform"] = { type ='function',
description = "",
returns = "(lxBoundingBoxPTR)",
valuetype = "lxm.lxBoundingBox_t",
args = "(lxBoundingBoxPTR out , lxBoundingBoxCPTR in , lxMatrix44CPTR trans)", },
["lxBoundingBox_transformBoxCorners"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxBoundingBoxCPTR in , lxMatrix44CPTR trans , lxVector3 box [ 8 ])", },
["lxBoundingBox_transformV"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxVector3 outmins , lxVector3 outmaxs , const lxVector3 mins , const lxVector3 maxs , lxMatrix44CPTR trans)", },
["lxBoundingBox_fromCorners"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxBoundingBoxPTR bbox , const lxVector3 vecs [ 8 ])", },
["lxBoundingCorners_fromCamera"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxVector3 vecs [ 8 ] , lxMatrix44CPTR mat , const float fov , const float frontplane , const float backplane , const float aspect)", },
["lxBoundingBox_intersect"] = { type ='function',
description = "",
returns = "(booln)",
valuetype = nil,
args = "(lxBoundingBoxCPTR a , lxBoundingBoxCPTR b)", },
["lxBoundingBox_checkPoint"] = { type ='function',
description = "",
returns = "(booln)",
valuetype = nil,
args = "(lxBoundingBoxCPTR out , const lxVector3 point)", },
["lxBoundingCone_checkSphere"] = { type ='function',
description = "",
returns = "(booln)",
valuetype = nil,
args = "(lxBoundingConeCPTR cone , lxBoundingSphereCPTR sphere)", },
["lxBoundingSphereCone_fromCamera"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxBoundingSpherePTR sphere , lxBoundingConePTR cone , float frontplane , float backplane , const lxVector3 pos , const lxVector3 dir , float fov)", },
["lxBoundingCone_fromFrustumCorners"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxBoundingConePTR cone , const lxVector3 box [ LUX_FRUSTUM_CORNERS ])", },
["lxBoundingSphere_fromFrustumCorners"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxBoundingSpherePTR sphere , const lxVector3 box [ LUX_FRUSTUM_CORNERS ])", },
["lxFrustum_update"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxFrustumPTR frustum , lxMatrix44CPTR viewproj)", },
["lxFrustum_checkPoint"] = { type ='function',
description = "",
returns = "(booln)",
valuetype = nil,
args = "(lxFrustumCPTR frustum , lxVector3CPTR vec)", },
["lxFrustum_checkSphere"] = { type ='function',
description = "",
returns = "(booln)",
valuetype = nil,
args = "(lxFrustumCPTR frustum , lxBoundingSphereCPTR)", },
["lxFrustum_checkSphereCoherent"] = { type ='function',
description = "",
returns = "(booln)",
valuetype = nil,
args = "(lxFrustumCPTR pFrustum , lxBoundingSphereCPTR sphere , int * plane)", },
["lxFrustum_checkSphereFull"] = { type ='function',
description = "",
returns = "(booln)",
valuetype = nil,
args = "(lxFrustumCPTR frustum , lxBoundingSphereCPTR)", },
["lxFrustum_checkBoundingBox"] = { type ='function',
description = "",
returns = "(booln)",
valuetype = nil,
args = "(lxFrustumCPTR frustum , lxBoundingBoxCPTR bbox)", },
["lxFrustum_checkBoundingBoxCoherent"] = { type ='function',
description = "",
returns = "(booln)",
valuetype = nil,
args = "(lxFrustumCPTR pFrustum , lxBoundingBoxCPTR bbox , int * plane)", },
["lxFrustum_cullBoundingBoxMaskedCoherent"] = { type ='function',
description = "",
returns = "(lxCullType_t)",
valuetype = nil,
args = "(lxFrustumCPTR pFrustum , lxBoundingBoxCPTR bbox , int in_mask , int * out_mask , int * inoutstart_id)", },
["lxFrustum_cullPoints"] = { type ='function',
description = "",
returns = "(lxCullType_t)",
valuetype = nil,
args = "(lxFrustumCPTR frustum , const lxVector4 * vecarray , const int numVec)", },
["lxFrustum_cullBoundingBox"] = { type ='function',
description = "",
returns = "(lxCullType_t)",
valuetype = nil,
args = "(lxFrustumCPTR frustum , lxBoundingBoxCPTR bbox)", },
["lxFrustum_getCorners"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxFrustumCPTR frustum , lxVector3 box [ LUX_FRUSTUM_CORNERS ])", },
["lxFrustum_fromCorners"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxFrustumPTR frustum , const lxVector3 box [ LUX_FRUSTUM_CORNERS ])", },
["lxFrustum_updateSigns"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxFrustumPTR frustum)", },
["lxMatrix44GetIdentity"] = { type ='function',
description = "",
returns = "(lxMatrix44CPTR)",
valuetype = nil,
args = "()", },
["lxMatrix44Identity"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR dst)", },
["lxMatrix44Copy"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR dst , lxMatrix44CPTR src)", },
["lxMatrix44CopyRot"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR dst , lxMatrix44CPTR src)", },
["lxMatrix44CopyRotTransposed"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR dst , lxMatrix44CPTR src)", },
["lxMatrix44SetTranslation"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR dst , lxVector3CPTR translation)", },
["lxMatrix44SetInvTranslation"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR dst , lxVector3CPTR translation)", },
["lxMatrix44SetScale"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR dst , lxVector3CPTR scale)", },
["lxMatrix44PreScale"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR dst , lxMatrix44CPTR mat , lxVector3CPTR scale)", },
["lxMatrix44SetRotRows"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR dst , float a , float b , float c , float d , float e , float f , float g , float h , float i)", },
["lxMatrix44GetTranslation"] = { type ='function',
description = "",
returns = "(float *)",
valuetype = nil,
args = "(lxMatrix44CPTR mat , lxVector3PTR vec)", },
["lxMatrix44Clear"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR mat)", },
["lxMatrix44ClearRot"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR mat)", },
["lxMatrix44ClearTranslation"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR mat)", },
["lxMatrix44VectorTransform"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44CPTR mat , lxVector3PTR v1)", },
["lxMatrix44VectorInvTransform"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44CPTR mat , lxVector3PTR pVect)", },
["lxMatrix44VectorRotate"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44CPTR mat , lxVector3PTR v1)", },
["lxMatrix44VectorInvRotate"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44CPTR mat , lxVector3PTR pVect)", },
["lxMatrix44VectorTranslate"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44CPTR mat , lxVector3PTR pVect)", },
["lxMatrix44VectorInvTranslate"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44CPTR mat , lxVector3PTR pVect)", },
["lxMatrix44Multiply"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR dst , lxMatrix44CPTR mat1 , lxMatrix44CPTR mat2)", },
["lxMatrix44Multiply1"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR mat1 , lxMatrix44CPTR mat2)", },
["lxMatrix44Multiply2"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44CPTR mat1 , lxMatrix44PTR mat2)", },
["lxMatrix44MultiplyFull"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR clip , lxMatrix44CPTR proj , lxMatrix44CPTR modl)", },
["lxMatrix44MultiplyRot"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR dst , lxMatrix44CPTR mat1 , lxMatrix44CPTR mat2)", },
["lxMatrix44MultiplyRot1"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR mat1 , lxMatrix44CPTR mat2)", },
["lxMatrix44MultiplyRot2"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44CPTR mat1 , lxMatrix44PTR mat2)", },
["lxMatrix44Orthonormalize"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR dst , lxMatrix44PTR src)", },
["lxMatrix44Transpose"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR dst , lxMatrix44CPTR src)", },
["lxMatrix44Transpose1"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR mat)", },
["lxMatrix44TransposeRot"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR dst , lxMatrix44CPTR src)", },
["lxMatrix44TransposeRot1"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR mat)", },
["lxMatrix44TransposeRotIdentity"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR dst , lxMatrix44CPTR src)", },
["lxMatrix44Invert"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR dst , lxMatrix44CPTR src)", },
["lxMatrix44Invert1"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR mat)", },
["lxMatrix44AffineInvert"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR dst , lxMatrix44CPTR src)", },
["lxMatrix44Orient"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR mat , lxVector3CPTR forward , lxVector3CPTR up , int axis)", },
["lxMatrix44LookAt"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR mat , lxVector3CPTR from , lxVector3CPTR to , lxVector3CPTR up)", },
["lxMatrix44FromEulerZYX"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR mat , lxVector3CPTR angles)", },
["lxMatrix44FromEulerZYXFast"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR mat , lxVector3CPTR angles)", },
["lxMatrix44FromEulerZYXdeg"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR mat , lxVector3CPTR angles)", },
["lxMatrix44FromEulerXYZ"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR mat , lxVector3PTR angles)", },
["lxMatrix44FromEulerXYZFast"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR mat , lxVector3PTR angles)", },
["lxMatrix44FromAngleAxis"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR mat , lxVector3CPTR axis , float cos , float sin , float oneminuscos)", },
["lxMatrix44FromAngleAxisFast"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR mat , float anglerad , lxVector3CPTR axis)", },
["lxMatrix44RotateAngle"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR mat , lxVector3PTR from , lxVector3PTR to)", },
["lxMatrix44RotateAroundVector"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR mat , lxVector3PTR axis , float cos , float sin , float oneminuscos)", },
["lxMatrix44RotateAroundVectorFast"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR mat , lxVector3PTR axis , float angleRad)", },
["lxMatrix44RotateAroundPointFast"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR mat , lxVector3CPTR center , lxVector3CPTR angles)", },
["lxMatrix44ToEulerXYZ"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44CPTR mat , lxVector3PTR angles)", },
["lxMatrix44ToEulerZYX"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44CPTR mat , lxVector3PTR angles)", },
["lxMatrix44Perspective"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR mat , const float fov , const float front , const float back , const float aspect)", },
["lxMatrix44PerspectiveInf"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR mat , const float fov , const float front , const float aspect)", },
["lxMatrix44Ortho"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR mat , const float height , const float front , const float back , const float aspect)", },
["lxMatrix44OrthoDirect"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR mat , const float left , const float right , const float bottom , const float top , const float front , const float back)", },
["lxMatrix44PlaneProjection"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR mat , lxVector3CPTR planenormal)", },
["lxMatrix44ModifyProjectionClipplane"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR projmatrix , lxMatrix44CPTR mview , lxMatrix44CPTR mviewinv , lxVector4CPTR clipPlane)", },
["lxMatrix44Reflection"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR mat , lxVector4PTR plane)", },
["lxMatrix44CompareRot"] = { type ='function',
description = "",
returns = "(float)",
valuetype = nil,
args = "(lxMatrix44PTR mat1 , lxMatrix44PTR mat2)", },
["lxMatrix44Swizzle1"] = { type ='function',
description = "",
returns = "()",
valuetype = nil,
args = "(lxMatrix44PTR mat , uint axis [ 3 ] , lxVector3PTR dirs)", },
["lxFloat32To16"] = { type ='function',
description = "",
returns = "(float16)",
valuetype = nil,
args = "(float fval)", },
["lxFloat16To32"] = { type ='function',
description = "",
returns = "(float)",
valuetype = nil,
args = "(float16 ival)", },
["lxFrustumPlane_t"] = { type ='class',
description = "",
childs = {
["pvec"] = { type ='value', description = "lxPlane", valuetype = nil, },
[""] = { type ='class',
description = "",
childs = {
["nx"] = { type ='value', description = "int", valuetype = nil, },
["ny"] = { type ='value', description = "int", valuetype = nil, },
["nz"] = { type ='value', description = "int", valuetype = nil, },
["_npad"] = { type ='value', description = "int", valuetype = nil, },
}
},
[""] = { type ='class',
description = "",
childs = {
["px"] = { type ='value', description = "int", valuetype = nil, },
["py"] = { type ='value', description = "int", valuetype = nil, },
["pz"] = { type ='value', description = "int", valuetype = nil, },
["_ppad"] = { type ='value', description = "int", valuetype = nil, },
}
},
}
},
["lxFrustum_t"] = { type ='class',
description = "",
childs = {
["LUX_FRUSTUM_PLANES"] = { type ='value', description = "lxFrustumPlane_t fplanes]", valuetype = nil, },
}
},
["lxBoundingBox_t"] = { type ='class',
description = "",
childs = {
["min"] = { type ='value', description = "lxVector4", valuetype = nil, },
["max"] = { type ='value', description = "lxVector4", valuetype = nil, },
}
},
["lxBoundingBoxCenter_t"] = { type ='class',
description = "",
childs = {
["center"] = { type ='value', description = "lxVector4", valuetype = nil, },
["size"] = { type ='value', description = "lxVector4", valuetype = nil, },
}
},
["lxBoundingSphere_t"] = { type ='class',
description = "",
childs = {
["center"] = { type ='value', description = "lxVector3", valuetype = nil, },
["radius"] = { type ='value', description = "float", valuetype = nil, },
}
},
["lxBoundingCone_t"] = { type ='class',
description = "",
childs = {
["top"] = { type ='value', description = "lxVector4", valuetype = nil, },
["axis"] = { type ='value', description = "lxVector4", valuetype = nil, },
["sinDiv"] = { type ='value', description = "float", valuetype = nil, },
["sinSqr"] = { type ='value', description = "float", valuetype = nil, },
["cosSqr"] = { type ='value', description = "float", valuetype = nil, },
["_pad"] = { type ='value', description = "float", valuetype = nil, },
}
},
["lxBoundingCapsule_t"] = { type ='class',
description = "",
childs = {
["origin"] = { type ='value', description = "lxVector4", valuetype = nil, },
["toEnd"] = { type ='value', description = "lxVector4", valuetype = nil, },
["radius"] = { type ='value', description = "float", valuetype = nil, },
["radiusSqr"] = { type ='value', description = "float", valuetype = nil, },
["2"] = { type ='value', description = "float _pad]", valuetype = nil, },
}
},
}
return {
lxm = {
type = 'lib',
description = "Lux Math",
childs = api,
},
}