From 5fbb2e03b55c2ac52945a9643a4d2f7dbbcd1e16 Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Wed, 21 Jul 2021 12:27:00 +0300 Subject: [PATCH] Torus SDF --- .../java/ru/bclib/sdf/primitive/SDFTorus.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/main/java/ru/bclib/sdf/primitive/SDFTorus.java diff --git a/src/main/java/ru/bclib/sdf/primitive/SDFTorus.java b/src/main/java/ru/bclib/sdf/primitive/SDFTorus.java new file mode 100644 index 00000000..2dfcb23d --- /dev/null +++ b/src/main/java/ru/bclib/sdf/primitive/SDFTorus.java @@ -0,0 +1,24 @@ +package ru.bclib.sdf.primitive; + +import ru.bclib.util.MHelper; + +public class SDFTorus extends SDFPrimitive { + private float radiusSmall; + private float radiusBig; + + public SDFTorus setBigRadius(float radius) { + this.radiusBig = radiusBig; + return this; + } + + public SDFTorus setSmallRadius(float radius) { + this.radiusSmall = radiusSmall; + return this; + } + + @Override + public float getDistance(float x, float y, float z) { + float nx = MHelper.length(x, z) - radiusBig; + return MHelper.length(nx, y) - radiusSmall; + } +}