Class/Object

geotrellis.vector.triangulation

DelaunayTriangulation

Related Docs: object DelaunayTriangulation | package triangulation

Permalink

case class DelaunayTriangulation(pointSet: CompleteIndexedPointSet, halfEdgeTable: HalfEdgeTable, tolerance: Double, debug: Boolean) extends Product with Serializable

Generates the Delaunay triangulation of a set of points.

The DelaunayTriangulation class operates on a collection of Coordinates to produce the unique triangulation (after projecting the points to the x-y plane) that satisfies the condition of each triangle in the result having a circumscribing circle where no vertices of the input point set are in the interior of that circle.

Note that the input set must have 2 or more distinct points. Collinear points are allowed.

Whenever using this class for complex tasks with large quantities of points, numerical issues must be considered. First, this triangulator will pare down the input set so as to remove points which are not numerically distinct. This may result in points which are not strictly equal, but indistinguishable from one another with respect to the geometric predicates (collinearity tests, in-circle tests, orientation tests). Failure to understand and address potential numerical issues in your data *may cause infinite loops*! (It is our experience that sufficiently large point sets will eventually run afoul of these problems if left alone.) The /tolerance/ parameter is set to a reasonable value in the defaults of the DelaunayTriangulation object's apply() method, but bear in mind that problems may arise in your particular case.

Linear Supertypes
Serializable, Serializable, Product, Equals, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. DelaunayTriangulation
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. AnyRef
  7. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new DelaunayTriangulation(pointSet: CompleteIndexedPointSet, halfEdgeTable: HalfEdgeTable, tolerance: Double, debug: Boolean)

    Permalink

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def boundary(): Int

    Permalink

    Returns a reference to the half edge on the outside of the boundary of the triangulation.

    Returns a reference to the half edge on the outside of the boundary of the triangulation.

    Starting from this half edge, the boundary of the triangulation can be traversed. This exterior loop will have a clockwise winding and will be convex.

  6. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  7. val debug: Boolean

    Permalink
  8. def decimate(nRemove: Int): Unit

    Permalink

    Simplifies a triangulation.

    Simplifies a triangulation.

    This method will remove a specified number of vertices from the triangulation, where the next vertex to be removed causes the least amount of error to be introduced to the surface. This function assumes that all coordinates have a valid z component, and therefore, the triangulation is interpretable as a height field.

    Implementation is based on paper by Garland, Michael, and Paul S. Heckbert. "Surface simplification using quadric error metrics." Proceedings of the 24th annual conference on Computer graphics and interactive techniques. ACM Press/Addison-Wesley Publishing Co., 1997.

  9. def deletePoint(vi: Int): Unit

    Permalink

    A function to remove a vertex from a DelaunayTriangulation that preserves the Delaunay property for all newly created fill triangles.

  10. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  11. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  12. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  13. val halfEdgeTable: HalfEdgeTable

    Permalink
  14. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  15. def isLinear(): Boolean

    Permalink

    Is this triangulation linear?

    Is this triangulation linear?

    If all distinct input points are collinear, this will return true. If so, the triangleMap will be empty.

  16. def isMeshValid(): Boolean

    Permalink

    A correctness check for the triangulation.

    A correctness check for the triangulation.

    Ensures that the mesh is correctly built with no obvious topological errors in the mesh.

  17. def isUnfolded(bound: Int, lo: Int, hi: Int): Boolean

    Permalink

    A version of isUnfolded that is useful for testing subregions of a triangulation.

    A version of isUnfolded that is useful for testing subregions of a triangulation.

    If during construction, a triangulation has smaller regions with their own bounding loops involving only vertex indices in a certain range, one may provide a reference to a bounding edge and the lo and hi indices in the range, and perform the isUnfolded test on that subregion.

  18. def isUnfolded(): Boolean

    Permalink

    A correctness check which tests if two triangles which share an edge overlapping.

  19. def liveVertices: Set[Int]

    Permalink
  20. def navigate(): Unit

    Permalink

    Provides a text-based interactive interface to explore the structure of a triangulation.

  21. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  22. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  23. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  24. def numVertices: Int

    Permalink
  25. val pointSet: CompleteIndexedPointSet

    Permalink
  26. val predicates: TriangulationPredicates

    Permalink
  27. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  28. val tolerance: Double

    Permalink
  29. val triangleMap: TriangleMap

    Permalink

    Contains the triangles of a DelaunayTriangulation

    Contains the triangles of a DelaunayTriangulation

    Note: This collection will be empty if isLinear is true.

  30. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  31. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  32. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  33. def writeWKT(wktFile: String): PrintWriter

    Permalink

    Outputs the triangulation to the named file as a WKT representation of a MultiPolygon.

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from AnyRef

Inherited from Any

Ungrouped