Class RoundedBox

java.lang.Object
raymarcher.meshes.RoundedBox
All Implemented Interfaces:
Mesh

public class RoundedBox
extends java.lang.Object
implements Mesh
An implementation of the Mesh interface that renders a box (rectangular prism) with rounded corners
  • Field Summary

    Fields
    Modifier and Type Field Description
    private java.awt.Color meshColor
    The color of the mesh
    private Vector3 position
    The position of the box's center
    private double radius
    The box's corner radius
    private Vector3 size
    A vector representing the box's dimensions
  • Constructor Summary

    Constructors
    Constructor Description
    RoundedBox​(Vector3 position, Vector3 size, double radius, java.awt.Color meshColor)
    Create a box mesh with rounded corners
  • Method Summary

    Modifier and Type Method Description
    java.awt.Color getMeshColor()
    Gives the mesh's color
    Vector3 getPosition()  
    double getRadius()  
    Vector3 getSize()  
    double sdf​(Vector3 position)
    The signed distance function for the mesh, which tells the mesh's distance to a point in 3D space
    void setMeshColor​(java.awt.Color meshColor)  
    void setPosition​(Vector3 position)  
    void setRadius​(double radius)  
    void setSize​(Vector3 size)  

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • position

      private Vector3 position
      The position of the box's center
    • size

      private Vector3 size
      A vector representing the box's dimensions
    • radius

      private double radius
      The box's corner radius
    • meshColor

      private java.awt.Color meshColor
      The color of the mesh
  • Constructor Details

    • RoundedBox

      public RoundedBox​(Vector3 position, Vector3 size, double radius, java.awt.Color meshColor)
      Create a box mesh with rounded corners
      Parameters:
      position - The position in 3D space to center the box
      size - A vector to represent the box's dimensions. The x coordinate is the length of the box in the x-axis, the y-coordinate is the height, and the z-coordinate is the width
      radius - The box's corner radius
      meshColor - The color of the box
  • Method Details

    • getPosition

      public Vector3 getPosition()
      Returns:
      the current position of the center of the box
    • setPosition

      public void setPosition​(Vector3 position)
      Parameters:
      position - the new center of the box
    • getSize

      public Vector3 getSize()
      Returns:
      the box's current size as a vector
    • setSize

      public void setSize​(Vector3 size)
      Parameters:
      size - A vector to represent the box's new dimensions. The x-coordinate is the length of the box in the x-axis, the y-coordinate is the height, and the z-coordinate is the width
    • getRadius

      public double getRadius()
      Returns:
      the current corner radius of the box
    • setRadius

      public void setRadius​(double radius)
      Parameters:
      radius - the new corner radius for the box
    • setMeshColor

      public void setMeshColor​(java.awt.Color meshColor)
      Parameters:
      meshColor - The new color to set the mesh to
    • getMeshColor

      public java.awt.Color getMeshColor()
      Description copied from interface: Mesh
      Gives the mesh's color
      Specified by:
      getMeshColor in interface Mesh
      Returns:
      The color of the mesh
    • sdf

      public double sdf​(Vector3 position)
      Description copied from interface: Mesh
      The signed distance function for the mesh, which tells the mesh's distance to a point in 3D space
      Specified by:
      sdf in interface Mesh
      Parameters:
      position - The vector representation of the position of the point to measure the distance to
      Returns:
      The signed distance of the mesh to the point. Values > 0 indicate the point is outside the mesh, values = 0 are points on the surface, and values < 0 are points inside the mesh.