Type Parameters:
F - Mesh face implementation type
All Superinterfaces:
BoundarySource<PlaneConvexSubset>, BoundarySource3D, Linecastable3D
All Known Subinterfaces:
TriangleMesh
All Known Implementing Classes:
SimpleTriangleMesh

public interface Mesh<F extends Mesh.Face> extends BoundarySource3D
Interface representing a 3D mesh data structure.
See Also:
  • Method Details

    • vertices

      Iterable<Vector3D> vertices()
      Get an iterable containing the vertices in the mesh.
      Returns:
      an iterable containing the vertices in the mesh
    • getVertices

      List<Vector3D> getVertices()
      Get a list containing all vertices in the mesh.
      Returns:
      a list containing all vertices in the mesh
    • getVertexCount

      int getVertexCount()
      Get the number of vertices in the mesh.
      Returns:
      the number of vertices in the mesh
    • faces

      Iterable<F> faces()
      Get an iterable containing all faces in the mesh.
      Returns:
      an iterable containing all faces in the mesh
    • getFaces

      List<F> getFaces()
      Get a list containing all faces in the mesh.
      Returns:
      a list containing all faces in the mesh
    • getFaceCount

      int getFaceCount()
      Get the number of faces in the mesh.
      Returns:
      the number of faces in the mesh
    • getFace

      F getFace(int index)
      Get a face from the mesh by its index.
      Parameters:
      index - the index of the mesh to retrieve
      Returns:
      the face at the given index
      Throws:
      IndexOutOfBoundsException - if the index is out of bounds
    • transform

      Mesh<F> transform(Transform<Vector3D> transform)
      Return a new, transformed mesh by applying the given transform to all vertices. Faces and vertex ordering are not affected.
      Parameters:
      transform - transform to apply
      Returns:
      a new, transformed mesh