Torus SDF
This commit is contained in:
parent
2bfc985403
commit
5fbb2e03b5
1 changed files with 24 additions and 0 deletions
24
src/main/java/ru/bclib/sdf/primitive/SDFTorus.java
Normal file
24
src/main/java/ru/bclib/sdf/primitive/SDFTorus.java
Normal file
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue