public class Graph<T> extends Object
| Modifier | Constructor and Description |
|---|---|
|
Graph() |
protected |
Graph(boolean storeLines) |
| Modifier and Type | Method and Description |
|---|---|
void |
add(NodeEventListener<T> listener) |
Edge<T> |
addEdge(T object,
LineString line) |
protected Edge<T> |
addEdge(T object,
LineString line,
Point from,
Point to)
Actually add the edge.
|
protected Edge<T> |
addEdge(T object,
Point from,
Point to) |
void |
addEdgeListener(EdgeEventListener<T> listener) |
protected T |
clone(T object,
LineString line)
Clone the object, setting the line property to the new value.
|
void |
close() |
boolean |
contains(Edge<T> edge) |
Edge<T> |
createEdge(GeometryFactory geometryFactory,
T object,
LineString points) |
void |
deleteEdges(Filter<Edge<T>> filter) |
protected void |
evict(Edge<T> edge) |
protected void |
evict(Node<T> node) |
List<Edge<T>> |
findEdges(EdgeVisitor<T> visitor) |
List<Edge<T>> |
findEdges(Point point,
double distance) |
Node<T> |
findNode(Point point)
Find the node by point coordinates returning the node if it exists, null
otherwise.
|
List<Node<T>> |
findNodes(BoundingBox boundingBox) |
List<Node<T>> |
findNodes(Edge<T> edge,
double distance)
Find all the nodes <= the distance of the edge, that are "on" the line.
|
List<Node<T>> |
findNodes(Geometry geometry,
double distance)
Find the nodes <= the distance of the specified geometry.
|
List<Node<T>> |
findNodes(Node<T> node,
double distance)
Find all the nodes <= the distance of the node.
|
List<Node<T>> |
findNodes(Point point,
double distance)
Find the nodes <= the distance of the specified point coordinates.
|
List<Node<T>> |
findNodesOfDegree(int degree) |
double |
getClosestDistance(Node<T> node,
double maxDistance) |
Edge<T> |
getEdge(int edgeId) |
protected <V> V |
getEdgeAttribute(int edgeId,
String name) |
protected Map<String,Object> |
getEdgeAttributes(int edgeId) |
int |
getEdgeCount() |
Collection<Integer> |
getEdgeIds() |
int[] |
getEdgeIds(Collection<Edge<T>> edges) |
IdObjectIndex<Edge<T>> |
getEdgeIndex() |
LineString |
getEdgeLine(int edgeId) |
List<LineString> |
getEdgeLines() |
T |
getEdgeObject(int edgeId) |
List<Edge<T>> |
getEdges() |
List<Edge<T>> |
getEdges(Comparator<Edge<T>> comparator) |
List<Edge<T>> |
getEdges(Edge<T> edge) |
List<Edge<T>> |
getEdges(Filter<Edge<T>> filter) |
List<Edge<T>> |
getEdges(Filter<Edge<T>> filter,
BoundingBox envelope) |
List<Edge<T>> |
getEdges(Filter<Edge<T>> filter,
Comparator<Edge<T>> comparator) |
List<Edge<T>> |
getEdges(Filter<Edge<T>> filter,
Comparator<Edge<T>> comparator,
BoundingBox envelope) |
List<Edge<T>> |
getEdges(Filter<Edge<T>> filter,
Comparator<Edge<T>> comparator,
Geometry geometry) |
List<Edge<T>> |
getEdges(Filter<Edge<T>> filter,
Geometry geometry) |
List<Edge<T>> |
getEdges(int... ids) |
List<Edge<T>> |
getEdges(List<Integer> ids) |
GeometryFactory |
getGeometryFactory() |
static <V> Graph<V> |
getGraph(int id) |
int |
getId() |
int |
getMaxEdgesInMemory() |
Node<T> |
getNode(int nodeId) |
Node<T> |
getNode(Point point)
Get the node by point coordinates, creating one if it did not exist.
|
protected <V> V |
getNodeAttribute(int nodeId,
String name) |
protected Map<String,Object> |
getNodeAttributes(int nodeId) |
Collection<Integer> |
getNodeIds() |
IdObjectIndex<Node<T>> |
getNodeIndex() |
List<Node<T>> |
getNodes() |
List<Node<T>> |
getNodes(Comparator<Node<T>> comparator) |
List<Node<T>> |
getNodes(Filter<Node<T>> filter) |
List<Node<T>> |
getNodes(Filter<Node<T>> filter,
BoundingBox envelope) |
List<Node<T>> |
getNodes(Filter<Node<T>> filter,
Comparator<Node<T>> comparator) |
List<Node<T>> |
getNodes(Filter<Node<T>> filter,
Comparator<Node<T>> comparator,
BoundingBox envelope) |
List<Node<T>> |
getNodes(List<Integer> nodeIds) |
List<T> |
getObjects() |
GeometryFactory |
getPrecisionModel() |
String |
getTypeName(Edge<T> edge)
Get the type name for the edge.
|
boolean |
hasEdge(Edge<T> edge) |
boolean |
hasEdgeBetween(Point fromPoint,
Point toPoint) |
Edge<T> |
merge(Node<T> node,
Edge<T> edge1,
Edge<T> edge2)
Merge the two edges at the node.
|
Edge<T> |
mergeEdges(Edge<T> edge1,
Edge<T> edge2)
Merge the two edges into a single edge, removing the old edges and node if
required from the graph and adding a new edge to the graph.
|
void |
moveNode(String typePath,
Node<Record> fromNode,
Node<Record> toNode,
Point newPoint) |
boolean |
moveNodesToMidpoint(String typePath,
Node<Record> node1,
Node<Record> node2) |
boolean |
movePointsWithinTolerance(Map<Point,Point> movedNodes,
double maxDistance,
Node<T> node1) |
void |
moveToMidpoint(Map<Point,Point> movedNodes,
Graph<T> graph1,
Node<T> node1,
Node<T> node2) |
void |
nodeMoved(Node<T> node,
Node<T> newNode) |
Iterable<Node<T>> |
nodes() |
void |
queryEdges(EdgeVisitor<T> visitor) |
void |
queryEdges(EdgeVisitor<T> visitor,
Visitor<Edge<T>> matchVisitor) |
void |
remove(Edge<T> edge) |
void |
remove(EdgeEventListener<T> listener) |
void |
remove(Node<T> node) |
void |
remove(NodeEventListener<T> listener) |
List<Edge<T>> |
replaceEdge(Edge<T> edge,
Geometry lines) |
Edge<T> |
replaceEdge(Edge<T> edge,
LineString line) |
List<Edge<T>> |
replaceEdge(Edge<T> edge,
List<LineString> lines) |
protected void |
setEdgeAttribute(int edgeId,
String name,
Object value) |
protected void |
setEdgeAttributes(int edgeId,
Map<String,Object> attributes) |
void |
setGeometryFactory(GeometryFactory geometryFactory) |
void |
setMaxEdgesInMemory(int maxEdgesInMemory) |
protected void |
setNodeAttribute(int edgeId,
String name,
Object value) |
protected void |
setNodeAttributes(int edgeId,
Map<String,Object> attributes) |
void |
setPrecisionModel(GeometryFactory precisionModel) |
<V extends Point> |
splitEdge(Edge<T> edge,
Collection<V> nodes) |
<V extends Point> |
splitEdge(Edge<T> edge,
Collection<V> splitPoints,
double maxDistance) |
List<Edge<T>> |
splitEdge(Edge<T> edge,
Node<T> node) |
List<Edge<T>> |
splitEdge(Edge<T> edge,
Point... nodes) |
void |
visitEdges(Comparator<Edge<T>> comparator,
Visitor<Edge<T>> visitor) |
void |
visitEdges(Filter<Edge<T>> filter,
Comparator<Edge<T>> comparator,
Visitor<Edge<T>> visitor) |
void |
visitEdges(Filter<Edge<T>> filter,
Visitor<Edge<T>> visitor) |
void |
visitEdges(Visitor<Edge<T>> visitor) |
void |
visitEdges(Visitor<Edge<T>> visitor,
BoundingBox envelope) |
void |
visitNodes(Filter<Node<T>> filter,
Comparator<Node<T>> comparator,
Visitor<Node<T>> visitor) |
void |
visitNodes(Filter<Node<T>> filter,
Visitor<Node<T>> visitor) |
void |
visitNodes(Visitor<Node<T>> visitor) |
void |
visitNodes(Visitor<Node<T>> visitor,
Comparator<Node<T>> comparator) |
public static <V> Graph<V> getGraph(int id)
public void add(NodeEventListener<T> listener)
public Edge<T> addEdge(T object, LineString line)
protected Edge<T> addEdge(T object, LineString line, Point from, Point to)
object - line - from - to - public void addEdgeListener(EdgeEventListener<T> listener)
protected T clone(T object, LineString line)
object - The object to clone.line - The line.@PreDestroy public void close()
public Edge<T> createEdge(GeometryFactory geometryFactory, T object, LineString points)
public List<Edge<T>> findEdges(EdgeVisitor<T> visitor)
public Node<T> findNode(Point point)
point - The point coordinates to find the node for.public List<Node<T>> findNodes(BoundingBox boundingBox)
public List<Node<T>> findNodes(Edge<T> edge, double distance)
edge - The edge.distance - The distance.IsPointOnLineEdgeFilterpublic List<Node<T>> findNodes(Geometry geometry, double distance)
geometry - The geometry.distance - The distance.public List<Node<T>> findNodes(Node<T> node, double distance)
node - The node.distance - The distance.public List<Node<T>> findNodes(Point point, double distance)
point - The point coordinates.distance - The distance.protected <V> V getEdgeAttribute(int edgeId,
String name)
public int getEdgeCount()
public Collection<Integer> getEdgeIds()
public int[] getEdgeIds(Collection<Edge<T>> edges)
public IdObjectIndex<Edge<T>> getEdgeIndex()
public LineString getEdgeLine(int edgeId)
public List<LineString> getEdgeLines()
public T getEdgeObject(int edgeId)
public List<Edge<T>> getEdges(Filter<Edge<T>> filter, Comparator<Edge<T>> comparator, BoundingBox envelope)
public List<Edge<T>> getEdges(Filter<Edge<T>> filter, Comparator<Edge<T>> comparator, Geometry geometry)
public GeometryFactory getGeometryFactory()
public int getId()
public int getMaxEdgesInMemory()
public Node<T> getNode(Point point)
point - The point coordinates to get the node for.protected <V> V getNodeAttribute(int nodeId,
String name)
public Collection<Integer> getNodeIds()
public IdObjectIndex<Node<T>> getNodeIndex()
public List<Node<T>> getNodes(Filter<Node<T>> filter, Comparator<Node<T>> comparator, BoundingBox envelope)
public GeometryFactory getPrecisionModel()
public String getTypeName(Edge<T> edge)
edge - The edge.public Edge<T> merge(Node<T> node, Edge<T> edge1, Edge<T> edge2)
node - edge1 - edge2 - public Edge<T> mergeEdges(Edge<T> edge1, Edge<T> edge2)
reversedEdges - The list of edges that need to be reversed.node - The node to remove.edge1 - The first edge to merge.edge2 - The second edge to merge.public void moveNode(String typePath, Node<Record> fromNode, Node<Record> toNode, Point newPoint)
public boolean moveNodesToMidpoint(String typePath, Node<Record> node1, Node<Record> node2)
public boolean movePointsWithinTolerance(Map<Point,Point> movedNodes, double maxDistance, Node<T> node1)
public void moveToMidpoint(Map<Point,Point> movedNodes, Graph<T> graph1, Node<T> node1, Node<T> node2)
public void queryEdges(EdgeVisitor<T> visitor)
public void queryEdges(EdgeVisitor<T> visitor, Visitor<Edge<T>> matchVisitor)
public void remove(EdgeEventListener<T> listener)
public void remove(NodeEventListener<T> listener)
public Edge<T> replaceEdge(Edge<T> edge, LineString line)
public void setGeometryFactory(GeometryFactory geometryFactory)
public void setMaxEdgesInMemory(int maxEdgesInMemory)
public void setPrecisionModel(GeometryFactory precisionModel)
public <V extends Point> List<Edge<T>> splitEdge(Edge<T> edge, Collection<V> splitPoints, double maxDistance)
public void visitEdges(Filter<Edge<T>> filter, Comparator<Edge<T>> comparator, Visitor<Edge<T>> visitor)
public void visitEdges(Visitor<Edge<T>> visitor, BoundingBox envelope)
public void visitNodes(Filter<Node<T>> filter, Comparator<Node<T>> comparator, Visitor<Node<T>> visitor)
Copyright © 2015 Revolution Systems Inc.. All rights reserved.