Render is now its own package.
[raymarcher.git] / Primitives.lua
index aafa7cb..c13966b 100644 (file)
@@ -17,9 +17,18 @@ local function make_plane(centre, normal, texture)
    end
 end
 
+local function make_pipe(centre, radius, axis, texture)
+   return function(p)
+      return {dist = V.norm(V.cross(p-centre, axis)) - radius,
+              texture = texture}
+   end
+end
+
+
 Primitives = {
    make_sphere = make_sphere,
-   make_plane = make_plane
+   make_plane = make_plane,
+   make_pipe = make_pipe
 }
 
 return Primitives