public class Triangulator
extends java.lang.Object
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 and Description |
---|
Triangulator() |
Modifier and Type | Method and Description |
---|---|
protected com.vividsolutions.jts.geom.Coordinate |
add(com.vividsolutions.jts.geom.Coordinate a,
com.vividsolutions.jts.geom.LineString vector) |
protected java.util.List |
alternativeTriangles(Triangle PQS,
Triangle QRS) |
java.util.Collection |
getIgnoredVectors()
Permits the caller to identify which vectors were ignored because they
were not 2-point LineStrings
|
protected java.util.List |
heightMaximizedTriangles(Triangle PQS,
Triangle QRS)
The intent of this method is to avoid narrow triangles, which create near
singularities.
|
static java.util.Collection |
nonVectors(java.util.Collection geometries) |
protected Quadrilateral |
tag(Quadrilateral sourceQuad,
Quadrilateral destQuad) |
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).
|
protected Triangle |
triangleContaining(com.vividsolutions.jts.geom.Coordinate p,
java.util.List triangles) |
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) |
protected com.vividsolutions.jts.geom.LineString |
vectorWithNearestTail(com.vividsolutions.jts.geom.Coordinate x,
java.util.List vectors) |
public java.util.Map triangleMap(com.vividsolutions.jts.geom.Envelope datasetEnvelope, java.util.Collection vectorLineStrings, TaskMonitor monitor)
datasetEnvelope
- the region to triangulatevectorLineStrings
- vectors (2-point LineStrings) whose tails and tips split
the "source quadrilateral" and "destination quadrilateral" into trianglesmonitor
- 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)
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 includepublic java.util.Collection getIgnoredVectors()
public static java.util.Collection nonVectors(java.util.Collection geometries)
public static boolean vector(com.vividsolutions.jts.geom.Geometry g)
protected java.util.List heightMaximizedTriangles(Triangle PQS, Triangle QRS)
PQS
- a triangle sharing an edge with QRS; vertex order is irrelevantprotected Triangle triangleContaining(com.vividsolutions.jts.geom.Coordinate p, java.util.List triangles)
protected com.vividsolutions.jts.geom.Coordinate add(com.vividsolutions.jts.geom.Coordinate a, com.vividsolutions.jts.geom.LineString vector)
protected com.vividsolutions.jts.geom.LineString vectorWithNearestTail(com.vividsolutions.jts.geom.Coordinate x, java.util.List vectors)
protected Quadrilateral tag(Quadrilateral sourceQuad, Quadrilateral destQuad)
protected java.util.List alternativeTriangles(Triangle PQS, Triangle QRS)
PQS
- a triangle sharing an edge with QRS; vertex order is irrelevantpublic static java.util.List taggedVectorVertices(boolean tips, java.util.Collection vectors)
tips
- true to return the vector tips; otherwise, the tails