Class DelaunayData


  • public class DelaunayData
    extends Object
    This class is used to collect all data used to compute a mesh based on a Delaunay triangulation
    Author:
    Erwan Bocher, Nicolas Fortin
    • Field Detail

      • DEFAULT_EPSILON

        public static double DEFAULT_EPSILON
    • Constructor Detail

      • DelaunayData

        public DelaunayData()
        Create a mesh data structure to collect points and edges that will be used by the Delaunay Triangulation
    • Method Detail

      • put

        public void put​(org.locationtech.jts.geom.Geometry geom,
                        DelaunayData.MODE mode)
                 throws IllegalArgumentException
        Put a geometry into the data array. Set true to populate the list of points and edges, needed for the ContrainedDelaunayTriangulation. Set false to populate only the list of points. Note the z-value is forced to O when it's equal to NaN.
        Parameters:
        geom - Geometry
        mode - Delaunay mode
        Throws:
        IllegalArgumentException
      • addPolygon

        public void addPolygon​(org.locationtech.jts.geom.Polygon newPoly,
                               int attribute)
        Append a polygon into the triangulation
        Parameters:
        newPoly - Polygon to append into the mesh, internal rings willb be inserted as holes.
        attribute - Polygon attribute. Triangle.getAttribute()
      • setEpsilon

        public void setEpsilon​(double epsilon)
        Parameters:
        epsilon - Merge vertices with this distance between
      • triangulate

        public void triangulate()
      • getTrianglesAsMultiPolygon

        public org.locationtech.jts.geom.MultiPolygon getTrianglesAsMultiPolygon()
      • get3DArea

        public double get3DArea()
        Return the 3D area of all triangles
        Returns:
        the area of the triangles in 3D
      • computeTriangleArea3D

        public static double computeTriangleArea3D​(org.locationtech.jts.geom.Coordinate p1,
                                                   org.locationtech.jts.geom.Coordinate p2,
                                                   org.locationtech.jts.geom.Coordinate p3)
        Computes the 3D area of a triangle. Uses the formula 1/2 * | u x v | where u,v are the side vectors of the triangle x is the vector cross-product
        Parameters:
        p1 - First vertex
        p2 - Second vertex
        p3 - Third vertex
        Returns:
        triangle area
      • getTrianglesSides

        public org.locationtech.jts.geom.MultiLineString getTrianglesSides()
        Returns:
        Unique triangles edges as a MultiLineString