Lua binding for kazmath
local vec2 = lkazmath.kmVec2New()
local tbl = vec2:ToTbl()
assert(tbl.x == 0)
assert(tbl.y == 0)
local vec3 = lkazmath.kmVec3NewWithTbl({x=1, y=2, z=3})
local tbl = vec3:ToTbl()
assert(tbl.x == 1)
assert(tbl.y == 2)
assert(tbl.z == 3)
Implemented for kmVec*, kmRay*, kmPlane, kmQuaternion
for exmaple
local vec2 = lkazmath.kmVec2New()
vec2.x = 5
assert(vec2.x == 5)
local ray2 = lkazmath.kmRay2New()
ray2.px = 2
assert(ray2.px == 2)
any function for a object starts with has been bind onto the userdata
for example
lkazmath.kmMat3Adjugate(mat3, pIn) -> mat3:Adjugate(pIn)
lkazmath.kmPlaneDotCoord(plane, pV) -> plane:DotCoord(pV)
local aabb2A = lkazmath.kmAABB2New()
aabb2A:Fill(centre1, width1, height1, depth1);
local aabb2B = lkazmath.kmAABB2New()
aabb2B:Fill(centre2, width2, height2, depth2);
aabb2A:ContainsAABB(aabb2, aabb2B)
lkazmath.KM_CONTAINS_NONE
lkazmath.KM_CONTAINS_PARTIAL
lkazmath.KM_CONTAINS_ALL
lkazmath.POINT_BEHIND_PLANE
lkazmath.POINT_ON_PLANE
lkazmath.POINT_INFRONT_OF_PLANE
lkazmath.KM_PLANE_LEFT
lkazmath.KM_PLANE_RIGHT
lkazmath.KM_PLANE_BOTTOM
lkazmath.KM_PLANE_TOP
lkazmath.KM_PLANE_NEAR
lkazmath.KM_PLANE_FAR
boolean
lhs : number
rhs : number
number
x : number
min : number
max : number
number
degrees : number
number
x : number
y : number
factor : number
Note : Params Alter
boolean outTA : number outTB : number
ptA : kmVec2
vecA : kmVec2
ptB : kmVec2
vecB : kmVec2
outTA : number
outTB : number
outIntersection : kmVec2
number
lhs : number
rhs : number
number
lhs : number
rhs : number
number
radians : number
number
s : number
boolean
segmentA : kmRay2
segmentB : kmRay2
intersection : kmVec2
aabb2 : kmAABB2
pIn : kmAABB2
aabb2 : kmAABB2
pOut : kmVec2
number
lkazmath.KM_CONTAINS_NONE
lkazmath.KM_CONTAINS_PARTIAL
lkazmath.KM_CONTAINS_ALL
aabb2 : kmAABB2
to_check : kmAABB2
number
aabb2 : kmAABB2
pPoint : kmVec2
number
aabb2 : kmAABB2
number
aabb2 : kmAABB2
aabb2 : kmAABB2
pIn : kmAABB2
other : kmAABB2
aabb2 : kmAABB2
centre : kmVec2
width : number
height : number
depth : number
aabb2 : kmAABB2
pIn : kmAABB2
aabb2 : kmAABB2
pIn : kmAABB2
s : number
aabb2 : kmAABB2
pIn : kmAABB2
pivot : kmVec2
s : number
aabb2 : kmAABB2
pIn : kmAABB2
translation : kmVec2
aabb3 : kmAABB3
pIn : kmAABB3
aabb3 : kmAABB3
pOut : kmVec3
number
lkazmath.KM_CONTAINS_NONE
lkazmath.KM_CONTAINS_PARTIAL
lkazmath.KM_CONTAINS_ALL
aabb3 : kmAABB3
to_check : kmAABB3
number
aabb3 : kmAABB3
pPoint : kmVec3
number
aabb3 : kmAABB3
number
aabb3 : kmAABB3
number
aabb3 : kmAABB3
aabb3 : kmAABB3
pIn : kmAABB3
other : kmAABB3
aabb3 : kmAABB3
centre : kmVec3
width : number
height : number
depth : number
boolean
aabb3 : kmAABB3
other : kmAABB3
boolean
aabb3 : kmAABB3
p1 : kmVec3
p2 : kmVec3
p3 : kmVec3
aabb3 : kmAABB3
pIn : kmAABB3
s : number
mat3 : kmMat3
pIn : kmMat3
boolean
mat3 : kmMat3
pMat2 : kmMat3
mat3 : kmMat3
pIn : kmMat3
number
mat3 : kmMat3
mat3 : kmMat3
pOut : kmVec3
mat3 : kmMat3
pOut : kmVec3
mat3 : kmMat3
axis : kmVec3
radians : number
mat3 : kmMat3
axis : kmVec3
degrees : number
mat3 : kmMat3
pOut : kmVec3
mat3 : kmMat3
pMat : number
mat3 : kmMat3
axis : kmVec3
radians : number
mat3 : kmMat3
axis : kmVec3
degrees : number
mat3 : kmMat3
pEye : kmVec3
pCentre : kmVec3
pUp : kmVec3
mat3 : kmMat3
quaternion : kmQuaternion
mat3 : kmMat3
radians : number
mat3 : kmMat3
degrees : number
mat3 : kmMat3
radians : number
mat3 : kmMat3
degrees : number
mat3 : kmMat3
radians : number
mat3 : kmMat3
degrees : number
mat3 : kmMat3
x : number
y : number
mat3 : kmMat3
x : number
y : number
mat3 : kmMat3
mat3 : kmMat3
pM : kmMat3
boolean
mat3 : kmMat3
mat3 : kmMat3
lhs : kmMat3
rhs : kmMat3
mat3 : kmMat3
lhs : kmMat3
rhs : number
mat3 : kmMat3
pIn : kmMat3
number
mat4 : kmMat4
pM2 : kmMat4
mat4 : kmMat4
pIn : kmMat4
mat4 : kmMat4
pIn : kmMat3
mat4 : kmPlane
pIn : kmMat4
plane : number
lkazmath.KM_PLANE_LEFT
lkazmath.KM_PLANE_RIGHT
lkazmath.KM_PLANE_BOTTOM
lkazmath.KM_PLANE_TOP
lkazmath.KM_PLANE_NEAR
lkazmath.KM_PLANE_FAR
mat4 : kmMat4
pOut : kmMat3
mat4 : kmMat4
pOut : kmVec3
mat4 : kmMat4
pMat : number
mat4 : kmVec3
pIn : kmMat4
mat4 : kmVec3
pIn : kmMat4
mat4 : kmVec3
pIn : kmMat4
mat4 : kmVec3
pIn : kmMat4
mat4 : kmMat4
mat4 : kmMat4
pM : kmMat4
number
mat4 : kmMat4
mat4 : kmMat4
pEye : kmVec3
pCenter : kmVec3
pUp : kmVec3
mat4 : kmMat4
pM1 : kmMat4
pM2 : kmMat4
mat4 : kmMat4
left : number
right : number
bottom : number
top : number
nearVal : number
farVal : number
mat4 : kmMat4
fovY : number
aspect : number
zNear : number
zFar : number
mat4 : kmMat4
axis : kmVec3
radians : number
mat4 : kmMat4
pQ : kmQuaternion
Note : Params Alter
radians : number
mat4 : kmVec3
radians : number
pIn : kmMat4
mat4 : kmMat4
rotation : kmMat3
translation : kmVec3
mat4 : kmMat4
radians : number
mat4 : kmMat4
radians : number
mat4 : kmMat4
pitch : number
yaw : number
roll : number
mat4 : kmMat4
radians : number
mat4 : kmMat4
x : number
y : number
z : number
mat4 : kmMat4
x : number
y : number
z : number
mat4 : kmMat4
pIn : kmMat4
number
lkazmath.POINT_BEHIND_PLANE
lkazmath.POINT_ON_PLANE
lkazmath.POINT_INFRONT_OF_PLANE
plane : kmPlane
pP : kmVec3
number
plane : kmPlane
pV : kmVec4
number
plane : kmPlane
pV : kmVec3
number
plane : kmPlane
pV : kmVec3
plane : kmPlane
pIn : kmMat4
row : kmInt
plane : kmPlane
a : number
b : number
c : number
d : number
plane : kmPlane
normal : kmVec3
dist : number
plane : kmPlane
pPoint : kmVec3
pNormal : kmVec3
plane : kmPlane
p1 : kmVec3
p2 : kmVec3
p3 : kmVec3
plane : kmVec3
p1 : kmPlane
p2 : kmPlane
p3 : kmPlane
plane : kmVec3
pP : kmPlane
pV1 : kmVec3
pV2 : kmVec3
plane : kmPlane
pP : kmPlane
plane : kmPlane
pP : kmPlane
s : number
quaternion : kmQuaternion
pQ1 : kmQuaternion
pQ2 : kmQuaternion
number
quaternion : kmQuaternion
p2 : kmQuaternion
quaternion : kmQuaternion
pIn : kmQuaternion
quaternion : kmQuaternion
v1 : kmVec3
v2 : kmVec3
number
quaternion : kmQuaternion
q2 : kmQuaternion
quaternion : kmQuaternion
pIn : kmQuaternion
quaternion : kmQuaternion
axis : kmVec3
pOut : kmQuaternion
quaternion : kmQuaternion
x : number
y : number
z : number
w : number
quaternion : kmVec3
pIn : kmQuaternion
quaternion : kmVec3
pIn : kmQuaternion
number
quaternion : kmQuaternion
quaternion : kmVec3
pIn : kmQuaternion
number
quaternion : kmQuaternion
quaternion : kmVec3
pIn : kmQuaternion
number
quaternion : kmQuaternion
quaternion : kmQuaternion
quaternion : kmQuaternion
pIn : kmQuaternion
number
quaternion : kmQuaternion
number
quaternion : kmQuaternion
number
quaternion : kmQuaternion
quaternion : kmQuaternion
pIn : kmQuaternion
quaternion : kmQuaternion
direction : kmVec3
up : kmVec3
quaternion : kmQuaternion
q1 : kmQuaternion
q2 : kmQuaternion
quaternion : kmVec3
q : kmQuaternion
v : kmVec3
quaternion : kmQuaternion
pIn : kmQuaternion
quaternion : kmQuaternion
pV : kmVec3
angle : number
quaternion : kmQuaternion
vec1 : kmVec3
vec2 : kmVec3
fallback : kmVec3
quaternion : kmQuaternion
pIn : kmMat3
quaternion : kmQuaternion
pitch : number
yaw : number
roll : number
quaternion : kmQuaternion
pIn : kmQuaternion
s : number
quaternion : kmQuaternion
q1 : kmQuaternion
q2 : kmQuaternion
t : number
quaternion : kmQuaternion
pQ1 : kmQuaternion
pQ2 : kmQuaternion
quaternion : kmQuaternion
pVector : kmVec3
pAngle : number
ray2 : kmRay2
px : number
py : number
vx : number
vy : number
ray2 : kmRay2
start : kmVec2
end : kmVec2
boolean
ray2 : kmRay2
p1 : kmVec2
p2 : kmVec2
p3 : kmVec2
p4 : kmVec2
intersection : kmVec2
normal_out : kmVec2
boolean
ray2 : kmRay2
centre : kmVec2
radius : number
intersection : kmVec2
boolean
ray2 : kmRay2
p1 : kmVec2
p2 : kmVec2
intersection : kmVec2
boolean
distance : number
ray2 : kmRay2
p1 : kmVec2
p2 : kmVec2
p3 : kmVec2
intersection : kmVec2
normal_out : kmVec2
ray3 : kmRay3
px : number
py : number
pz : number
vx : number
vy : number
vz : number
ray3 : kmRay3
point : kmVec3
direction : kmVec3
boolean
ray3 : kmVec3
ray : kmRay3
plane : kmPlane
boolean
distance : number
ray3 : kmRay3
v0 : kmVec3
v1 : kmVec3
v2 : kmVec3
intersection : kmVec3
normal : kmVec3
vec2 : kmVec2
pV1 : kmVec2
pV2 : kmVec2
number
vec2 : kmVec2
p2 : kmVec2
vec2 : kmVec2
pIn : kmVec2
number
vec2 : kmVec2
pV2 : kmVec2
number
vec2 : kmVec2
v2 : kmVec2
number
vec2 : kmVec2
v2 : kmVec2
vec2 : kmVec2
pV1 : kmVec2
pV2 : kmVec2
number
vec2 : kmVec2
pV2 : kmVec2
vec2 : kmVec2
x : number
y : number
number
vec2 : kmVec2
number
vec2 : kmVec2
vec2 : kmVec2
pV1 : kmVec2
pV2 : kmVec2
t : number
vec2 : kmVec2
v1 : kmVec2
v2 : kmVec2
vec2 : kmVec2
pV1 : kmVec2
pV2 : kmVec2
vec2 : kmVec2
pIn : kmVec2
vec2 : kmVec2
pIn : kmVec2
normal : kmVec2
vec2 : kmVec2
pIn : kmVec2
degrees : number
center : kmVec2
vec2 : kmVec2
pIn : kmVec2
s : number
vec2 : kmVec2
pV1 : kmVec2
pV2 : kmVec2
vec2 : kmVec2
pB : kmVec2
vec2 : kmVec2
pV1 : kmVec2
pM : kmMat3
vec2 : kmVec2
pV : kmVec2
pM : kmMat3
vec3 : kmVec3
pV1 : kmVec3
pV2 : kmVec3
boolean
vec3 : kmVec3
p2 : kmVec3
vec3 : kmVec3
pIn : kmVec3
vec3 : kmVec3
pV1 : kmVec3
pV2 : kmVec3
vec3 : kmVec3
pV1 : kmVec3
pV2 : kmVec3
number
vec3 : kmVec3
pV2 : kmVec3
vec3 : kmVec3
x : number
y : number
z : number
vec3 : kmVec3
pIn : kmVec3
vec3 : kmVec3
pV : kmVec3
pM : kmMat4
vec3 : kmVec3
pVect : kmVec3
pM : kmMat4
number
vec3 : kmVec3
number
vec3 : kmVec3
vec3 : kmVec3
pV1 : kmVec3
pV2 : kmVec3
t : number
vec3 : kmVec3
pV1 : kmVec3
pV2 : kmVec3
vec3 : kmVec3
pV : kmVec3
pM : kmMat3
vec3 : kmVec3
pV : kmVec3
pM : kmMat4
vec3 : kmVec3
pIn : kmVec3
vec3 : kmVec3
tangent : kmVec3
vec3 : kmVec3
point : kmVec3
plane : kmPlane
vec3 : kmVec3
other : kmVec3
projection : kmVec3
vec3 : kmVec3
pIn : kmVec3
normal : kmVec3
vec3 : kmVec3
pIn : kmVec3
forwards : kmVec3
vec3 : kmVec3
pIn : kmVec3
s : number
vec3 : kmVec3
pV1 : kmVec3
pV2 : kmVec3
vec3 : kmVec3
b : kmVec3
vec3 : kmVec3
pV1 : kmVec3
pM : kmMat4
vec3 : kmVec3
pV : kmVec3
pM : kmMat4
vec3 : kmVec3
pV : kmVec3
pM : kmMat4
vec3 : kmVec3
vec4 : kmVec4
pV1 : kmVec4
pV2 : kmVec4
number
vec4 : kmVec4
p2 : kmVec4
vec4 : kmVec4
pIn : kmVec4
vec4 : kmVec4
pV1 : kmVec4
pV2 : kmVec4
number
vec4 : kmVec4
pV2 : kmVec4
vec4 : kmVec4
x : number
y : number
z : number
w : number
number
vec4 : kmVec4
number
vec4 : kmVec4
vec4 : kmVec4
pV1 : kmVec4
pV2 : kmVec4
t : number
vec4 : kmVec4
pV1 : kmVec4
pV2 : kmVec4
vec4 : kmVec4
pV : kmVec4
pM : kmMat4
vec4 : kmVec4
pIn : kmVec4
vec4 : kmVec4
pIn : kmVec4
s : number
vec4 : kmVec4
pV1 : kmVec4
pV2 : kmVec4
vec4 : kmVec4
pB : kmVec4
vec4 : kmVec4
pV : kmVec4
pM : kmMat4
vec4 : kmVec4
outStride : unsigned int
pV : kmVec4
vStride : unsigned int
pM : kmMat4
count : unsigned int