Added scripts and models for DataCompressionTest 1 and 2
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
local module = {}
|
||||
|
||||
local vector = Vector3.new
|
||||
local floor = math.floor
|
||||
local noise = math.noise
|
||||
local ceil = math.ceil
|
||||
local abs = math.abs
|
||||
local max = math.max
|
||||
local min = math.min
|
||||
local xor = bit32.bxor
|
||||
local rot = bit32.rrotate
|
||||
local mod = math.fmod
|
||||
local function cheman(vec)
|
||||
return max(abs(vec.Y),abs(vec.X)+abs(vec.Z))
|
||||
end
|
||||
local function man(vec)
|
||||
return abs(vec.X)+abs(vec.Y)+abs(vec.Z)
|
||||
end
|
||||
local function che(vec)
|
||||
return max(abs(vec.X),abs(vec.Y),abs(vec.Z))
|
||||
end
|
||||
local function mag(vec)
|
||||
return vec.Magnitude
|
||||
end
|
||||
local function squircle(vec)
|
||||
return vec.X^4 + vec.Y^4 + vec.Z^4
|
||||
end
|
||||
local function off(x,y,z)
|
||||
local rx = noise(x*123.456,y*345.612,z*561.234)
|
||||
local ry = noise(x*345.612,z*123.456,y*561.234)
|
||||
local rz = noise(z*123.456,x*561.234,y*345.612)
|
||||
local res = vector(rx,ry,rz).Unit * 0.5
|
||||
return res,res + vector(x,y,z)
|
||||
end
|
||||
local pa = vector(0,0,0)
|
||||
local pb = vector(1,0,0)
|
||||
local pc = vector(0,1,0)
|
||||
local pd = vector(0,0,1)
|
||||
local pe = vector(1,1,0)
|
||||
local pf = vector(0,1,1)
|
||||
local pg = vector(1,0,1)
|
||||
local ph = vector(1,1,1)
|
||||
local function vor(x,y,z,fun)
|
||||
local fx = floor(x)
|
||||
local fy = floor(y)
|
||||
local fz = floor(z)
|
||||
local cx = ceil(x)
|
||||
local cy = ceil(y)
|
||||
local cz = ceil(z)
|
||||
local center = vector(x,y,z)-vector(fx,fy,fz)
|
||||
local av,aa = off(fx,fy,fz)
|
||||
local bv,ba = off(cx,fy,fz)
|
||||
local cv,ca = off(fx,cy,fz)
|
||||
local dv,da = off(fx,fy,cz)
|
||||
local ev,ea = off(cx,cy,fz)
|
||||
local fv,fa = off(fx,cy,cz)
|
||||
local gv,ga = off(cx,fy,cz)
|
||||
local hv,ha = off(cx,cy,cz)
|
||||
local a = fun(av+pa-center)
|
||||
local b = fun(bv+pb-center)
|
||||
local c = fun(cv+pc-center)
|
||||
local d = fun(dv+pd-center)
|
||||
local e = fun(ev+pe-center)
|
||||
local f = fun(fv+pf-center)
|
||||
local g = fun(gv+pg-center)
|
||||
local h = fun(hv+ph-center)
|
||||
local v = a
|
||||
local vv = aa
|
||||
if b < v then v = b vv = ba end
|
||||
if c < v then v = c vv = ca end
|
||||
if d < v then v = d vv = da end
|
||||
if e < v then v = e vv = ea end
|
||||
if f < v then v = f vv = fa end
|
||||
if g < v then v = g vv = ga end
|
||||
if h < v then v = h vv = ha end
|
||||
return 1-(v*2),vv
|
||||
end
|
||||
|
||||
module.vor = vor
|
||||
module.man = man
|
||||
module.mag = mag
|
||||
module.che = che
|
||||
module.cheman = cheman
|
||||
|
||||
return module
|
||||
Reference in New Issue
Block a user