package rectify import org.openrndr.WindowMultisample import org.openrndr.application import org.openrndr.color.ColorRGBa import org.openrndr.draw.DrawPrimitive import org.openrndr.draw.isolated import org.openrndr.extra.camera.Orbital import org.openrndr.extra.meshgenerators.sphereMesh import org.openrndr.extra.noise.uniformRing import org.openrndr.extra.shapes.rectify.rectified import org.openrndr.math.Vector3 import org.openrndr.shape.path3D fun main() = application { configure { width = 720 height = 720 multisample = WindowMultisample.SampleCount(4) } program { val p = path3D { moveTo(0.0, 0.0, 0.0) for (i in 0 until 10) { curveTo( Vector3.uniformRing(0.1, 1.0) * 10.0, Vector3.uniformRing(0.1, 1.0) * 10.0, Vector3.uniformRing(0.1, 1.0) * 10.0 ) } } val pr = p.rectified(0.01, 100.0) val sphere = sphereMesh(radius = 0.1) extend(Orbital()) extend { drawer.stroke = ColorRGBa.PINK for (i in 0 until 500) { drawer.isolated { drawer.translate(pr.position(i / 499.0)) drawer.vertexBuffer(sphere, DrawPrimitive.TRIANGLES) } } drawer.path(p) } } }