org.geotools.graph.build.line
Class LineStringGraphGenerator

Object
  extended by BasicLineGraphGenerator
      extended by LineStringGraphGenerator
All Implemented Interfaces:
GraphGenerator, LineGraphGenerator
Direct Known Subclasses:
DirectedLineStringGraphGenerator

public class LineStringGraphGenerator
extends BasicLineGraphGenerator

Builds a graph representing a line network in which edges in the network are represented by LineString geometries. This implementation is a wrapper around a LineGraphGenerator which sets underlying edge objects to be LineString objects, and underlying Node objects to be Point objects. While generating the graph, the generator uses the visited flag of created components to determine when to create underlying objects. For this reason it is not recommended to modify the visited flag of any graph components.

Author:
Justin Deoliveira, Refractions Research Inc, jdeolive@refractions.net, Anders Bakkevold, Bouvet AS, bakkedev@gmail.com
See Also:
LineString, Point

Constructor Summary
LineStringGraphGenerator()
           
LineStringGraphGenerator(double tolerance)
           
 
Method Summary
 Graphable add(Object obj)
          Adds a line to the graph.
protected  LineSegment alterLine(LineSegment line, Node n1, Node n2)
           
 Graphable get(Object obj)
          Returns the edge which represents a line.
 Graphable remove(Object obj)
          Removes the edge from the graph that represents a line.
protected  void setObject(Node n, Object obj)
           
 
Methods inherited from class BasicLineGraphGenerator
getEdge, getGraph, getGraphBuilder, getNode, getNodeMap, setGraphBuilder, setObject, useTolerance
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LineStringGraphGenerator

public LineStringGraphGenerator(double tolerance)

LineStringGraphGenerator

public LineStringGraphGenerator()
Method Detail

add

public Graphable add(Object obj)
Description copied from class: BasicLineGraphGenerator
Adds a line to the graph.

Specified by:
add in interface GraphGenerator
Overrides:
add in class BasicLineGraphGenerator
Parameters:
obj - An instance of LineSegment.
Returns:
A BasicEdge.
See Also:
LineSegment, GraphGenerator.add(Object)

alterLine

protected LineSegment alterLine(LineSegment line,
                                Node n1,
                                Node n2)
Overrides:
alterLine in class BasicLineGraphGenerator

remove

public Graphable remove(Object obj)
Description copied from class: BasicLineGraphGenerator
Removes the edge from the graph that represents a line.

Specified by:
remove in interface GraphGenerator
Overrides:
remove in class BasicLineGraphGenerator
Parameters:
obj - The object modelled by the component.
Returns:
Edge that represents the line.
See Also:
GraphGenerator.remove(Object)

get

public Graphable get(Object obj)
Description copied from class: BasicLineGraphGenerator
Returns the edge which represents a line. Note that if the exact same line has been added to the graph multiple times, then only one of the edges that represents it will be returned. It is undefined which edge will be returned.

Specified by:
get in interface GraphGenerator
Overrides:
get in class BasicLineGraphGenerator
Parameters:
obj - An instance of LineSegment.
Returns:
Edge that represents the line.
See Also:
GraphGenerator.get(Object)

setObject

protected void setObject(Node n,
                         Object obj)
Overrides:
setObject in class BasicLineGraphGenerator


Copyright © 1996-2014 Geotools. All Rights Reserved.