diff --git a/orx-mesh-generators/src/commonMain/kotlin/TriangleMeshBuilder.kt b/orx-mesh-generators/src/commonMain/kotlin/TriangleMeshBuilder.kt index c14d2e702..b559ff622 100644 --- a/orx-mesh-generators/src/commonMain/kotlin/TriangleMeshBuilder.kt +++ b/orx-mesh-generators/src/commonMain/kotlin/TriangleMeshBuilder.kt @@ -249,13 +249,13 @@ fun TriangleMeshBuilder.grid( when (coordinates) { GridCoordinates.INDEX -> this.builder(u * 1.0, v * 1.0) GridCoordinates.BIPOLAR -> this.builder( - 2 * u / (width - 1.0) - 1, - 2 * v / (height - 1.0) - 1 + if (width <= 1) 0.0 else 2 * u / (width - 1.0) - 1, + if (height <= 1) 0.0 else 2 * v / (height - 1.0) - 1 ) GridCoordinates.UNIPOLAR -> this.builder( - u / (width - 1.0), - v / (height - 1.0) + if (width <= 1) 0.0 else u / (width - 1.0), + if (height <= 1) 0.0 else v / (height - 1.0) ) } } @@ -292,15 +292,15 @@ fun TriangleMeshBuilder.grid( ) GridCoordinates.BIPOLAR -> this.builder( - 2 * u / (width - 1.0) - 1, - 2 * v / (height - 1.0) - 1, - 2 * w / (depth - 1.0) - 1 + if (width <= 1) 0.0 else 2 * u / (width - 1.0) - 1, + if (height <= 1) 0.0 else 2 * v / (height - 1.0) - 1, + if (depth <= 1) 0.0 else 2 * w / (depth - 1.0) - 1 ) GridCoordinates.UNIPOLAR -> this.builder( - u / (width - 1.0), - v / (height - 1.0), - w / (depth - 1.0) + if (width <= 1) 0.0 else u / (width - 1.0), + if (height <= 1) 0.0 else v / (height - 1.0), + if (depth <= 1) 0.0 else w / (depth - 1.0) ) } } diff --git a/orx-mesh-generators/src/jvmDemo/kotlin/DemoComplex05.kt b/orx-mesh-generators/src/jvmDemo/kotlin/DemoComplex05.kt index 8169749bc..7cd32ea9f 100644 --- a/orx-mesh-generators/src/jvmDemo/kotlin/DemoComplex05.kt +++ b/orx-mesh-generators/src/jvmDemo/kotlin/DemoComplex05.kt @@ -4,7 +4,10 @@ import org.openrndr.draw.CullTestPass import org.openrndr.draw.DrawPrimitive import org.openrndr.draw.shadeStyle import org.openrndr.extra.camera.Orbital -import org.openrndr.extra.meshgenerators.* +import org.openrndr.extra.meshgenerators.buildTriangleMesh +import org.openrndr.extra.meshgenerators.extrudeShape +import org.openrndr.extra.meshgenerators.grid +import org.openrndr.extra.meshgenerators.twist import org.openrndr.math.Vector3 import org.openrndr.shape.Circle @@ -20,15 +23,15 @@ fun main() { this.eye = Vector3(0.0, 30.0, 50.0) } val m = buildTriangleMesh { - grid(5,5, 5) { u, v, w -> + grid(5, 5, 5) { u, v, w -> isolated { translate(u * 20.0, v * 20.0, w * 20.0) extrudeShape(Circle(0.0, 0.0, 50.0).shape, 4.0, scale = 0.1) } } - twist(360.0/200.0, 0.0) - twist(360.0/200.0, 0.0, Vector3.UNIT_X) - twist(360.0/200.0, 0.0, Vector3.UNIT_Z) + twist(360.0 / 200.0, 0.0) + twist(360.0 / 200.0, 0.0, Vector3.UNIT_X) + twist(360.0 / 200.0, 0.0, Vector3.UNIT_Z) } extend {