com.vividsolutions.jump.warp
Class Triangulator

java.lang.Object
  extended by com.vividsolutions.jump.warp.Triangulator

public class Triangulator
extends java.lang.Object

A better name for this class would have been TriangleMapFactory. Given the coordinates of an initial and final triangulation, it will return a map of source Triangle to destination Triangle. Creates a FeatureCollection of triangles covering a given area. Thin triangles are avoided.

Coordinates are not created, modified, or discarded. Thus, the triangles created will be composed of the Coordinates passed in to the Triangulator. See White, Marvin S., Jr. and Griffin, Patricia. 1985. Piecewise linear rubber-sheet map transformation. "The American Cartographer" 12:2, 123-31.


Constructor Summary
Triangulator()
           
 
Method Summary
 java.util.Collection getIgnoredVectors()
          Permits the caller to identify which vectors were ignored because they were not 2-point LineStrings
static java.util.Collection nonVectors(java.util.Collection geometries)
           
static java.util.List taggedVectorVertices(boolean tips, java.util.Collection vectors)
          The returned Coordinates will be tagged with the tails if the tips are requested (or the tips, if the tails are requested).
 java.util.Map triangleMap(com.vividsolutions.jts.geom.Envelope datasetEnvelope, java.util.Collection vectorLineStrings, java.util.Collection sourceHints, java.util.Collection destinationHints, TaskMonitor monitor)
           
 java.util.Map triangleMap(com.vividsolutions.jts.geom.Envelope datasetEnvelope, java.util.Collection vectorLineStrings, TaskMonitor monitor)
          Splits two regions into Triangles.
static boolean vector(com.vividsolutions.jts.geom.Geometry g)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Triangulator

public Triangulator()
Method Detail

triangleMap

public java.util.Map triangleMap(com.vividsolutions.jts.geom.Envelope datasetEnvelope,
                                 java.util.Collection vectorLineStrings,
                                 TaskMonitor monitor)
Splits two regions into Triangles. The two regions are called the "source quadrilateral" and "destination quadrilateral", and are based on the given dataset envelope. The "source quadrilateral" is the dataset envelope expanded 5% along each margin. The "destination quadrilateral" is the source quadrilateral with each vertex shifted according to the vector with the nearest tail. The source quadrilateral is split using the vector tails; the destination quadrilateral is split using the vector tips. In this way, the vectors map the source Triangles to the destination Triangles.

Parameters:
datasetEnvelope - the region to triangulate
vectors - vectors (2-point LineStrings) whose tails and tips split the "source quadrilateral" and "destination quadrilateral" into triangles
Returns:
a map of source Triangles to destination Triangles

triangleMap

public java.util.Map triangleMap(com.vividsolutions.jts.geom.Envelope datasetEnvelope,
                                 java.util.Collection vectorLineStrings,
                                 java.util.Collection sourceHints,
                                 java.util.Collection destinationHints,
                                 TaskMonitor monitor)
Parameters:
sourceHints - "far-away" Coordinates (even outside the dataset envelope) for which we must ensure that source triangles include.
destinationHints - "far-away" Coordinates for which we must ensure that destination triangles include

getIgnoredVectors

public java.util.Collection getIgnoredVectors()
Permits the caller to identify which vectors were ignored because they were not 2-point LineStrings


nonVectors

public static java.util.Collection nonVectors(java.util.Collection geometries)

vector

public static boolean vector(com.vividsolutions.jts.geom.Geometry g)

taggedVectorVertices

public static java.util.List taggedVectorVertices(boolean tips,
                                                  java.util.Collection vectors)
The returned Coordinates will be tagged with the tails if the tips are requested (or the tips, if the tails are requested).

Parameters:
tips - true to return the vector tips; otherwise, the tails