Initial
This commit is contained in:
commit
b8d1a8022c
649 changed files with 171549 additions and 0 deletions
42
g3d/vectors.lua
Normal file
42
g3d/vectors.lua
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
-- written by groverbuger for g3d
|
||||
-- september 2021
|
||||
-- MIT license
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
-- vector functions
|
||||
----------------------------------------------------------------------------------------------------
|
||||
-- some basic vector functions that don't use tables
|
||||
-- because these functions will happen often, this is done to avoid frequent memory allocation
|
||||
|
||||
local vectors = {}
|
||||
|
||||
function vectors.subtract(v1,v2,v3, v4,v5,v6)
|
||||
return v1-v4, v2-v5, v3-v6
|
||||
end
|
||||
|
||||
function vectors.add(v1,v2,v3, v4,v5,v6)
|
||||
return v1+v4, v2+v5, v3+v6
|
||||
end
|
||||
|
||||
function vectors.scalarMultiply(scalar, v1,v2,v3)
|
||||
return v1*scalar, v2*scalar, v3*scalar
|
||||
end
|
||||
|
||||
function vectors.crossProduct(a1,a2,a3, b1,b2,b3)
|
||||
return a2*b3 - a3*b2, a3*b1 - a1*b3, a1*b2 - a2*b1
|
||||
end
|
||||
|
||||
function vectors.dotProduct(a1,a2,a3, b1,b2,b3)
|
||||
return a1*b1 + a2*b2 + a3*b3
|
||||
end
|
||||
|
||||
function vectors.normalize(x,y,z)
|
||||
local mag = math.sqrt(x^2 + y^2 + z^2)
|
||||
return x/mag, y/mag, z/mag
|
||||
end
|
||||
|
||||
function vectors.magnitude(x,y,z)
|
||||
return math.sqrt(x^2 + y^2 + z^2)
|
||||
end
|
||||
|
||||
return vectors
|
||||
Loading…
Add table
Add a link
Reference in a new issue