Class ExtractSurfaceCubes.VETable

  • Enclosing class:
    ExtractSurfaceCubes

    protected class ExtractSurfaceCubes.VETable
    extends java.lang.Object
    Vertex-edge table to support mesh topology.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      protected class  ExtractSurfaceCubes.VETable.Vertex
      Vertex class which stores the coordinates of an edge-vertex along with the indices of adjacent vertices which comprise the edges intersected by the level surface.
    • Constructor Summary

      Constructors 
      Constructor Description
      VETable()
      Allocate a table for all possible edge vertices.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      Vector3f get​(int i)
      Access the specified edge vertex.
      ExtractSurfaceCubes.Triangle getNextTriangle()
      Loop through all edge connections extracting triangles.
      float getX​(int i)
      Access the x sample space coordinates for the specified edge vertex.
      float getY​(int i)
      Access the y sample space coordinates for the specified edge vertex.
      float getZ​(int i)
      Access the z sample space coordinates for the specified edge vertex.
      void insert​(int i, float x, float y, float z)
      Insert a vertex along the specified edge.
      void insert​(int i0, int i1)
      Insert an edge connecting the specified vertices.
      void Insert​(int i0, int i1)  
      void Insert​(int i, Vector3f P)  
      private boolean remove​(TriangleKey tri)  
      void removeTriangles​(java.util.Vector<Vector3f> vertices, java.util.Vector<TriangleKey> triangles)  
      protected void removeVertex​(int i)
      Mark the specified edge vertex as no longer being used to create triangles.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • VETable

        public VETable()
        Allocate a table for all possible edge vertices.
    • Method Detail

      • get

        public Vector3f get​(int i)
        Access the specified edge vertex.
        Parameters:
        i - int index of the specific edge vertex
        Returns:
        Vector3f sample space coordinates of the stored vertex
      • getNextTriangle

        public ExtractSurfaceCubes.Triangle getNextTriangle()
        Loop through all edge connections extracting triangles.
        Returns:
        Triangle new index containing the indices into the array of edge vertices, one index for each vertex in the triangle.
      • getX

        public float getX​(int i)
        Access the x sample space coordinates for the specified edge vertex.
        Parameters:
        i - int index of the specified edge vertex
        Returns:
        float x sample space coordinate for vertex
      • getY

        public float getY​(int i)
        Access the y sample space coordinates for the specified edge vertex.
        Parameters:
        i - int index of the specified edge vertex
        Returns:
        float y sample space coordinate for vertex
      • getZ

        public float getZ​(int i)
        Access the z sample space coordinates for the specified edge vertex.
        Parameters:
        i - int index of the specified edge vertex
        Returns:
        float z sample space coordinate for vertex
      • insert

        public void insert​(int i,
                           float x,
                           float y,
                           float z)
        Insert a vertex along the specified edge.
        Parameters:
        i - int index indicating an edge in the voxel
        x - float x sample space coordinates for the vertex
        y - float y sample space coordinates for the vertex
        z - float z sample space coordinates for the vertex
      • insert

        public void insert​(int i0,
                           int i1)
        Insert an edge connecting the specified vertices.
        Parameters:
        i0 - int index indicating one edge in the voxel
        i1 - int index indicating second edge in the voxel
      • Insert

        public void Insert​(int i0,
                           int i1)
      • Insert

        public void Insert​(int i,
                           Vector3f P)
      • removeTriangles

        public void removeTriangles​(java.util.Vector<Vector3f> vertices,
                                    java.util.Vector<TriangleKey> triangles)
      • removeVertex

        protected void removeVertex​(int i)
        Mark the specified edge vertex as no longer being used to create triangles.
        Parameters:
        i - int index of the edge vertex