geos::noding::SegmentString Class Reference

Represents a list of contiguous line segments, and supports noding the segments. More...

#include <SegmentString.h>

List of all members.

Public Types

typedef std::vector< const
SegmentString * > 
ConstVect
typedef std::vector
< SegmentString * > 
NonConstVect

Public Member Functions

void testInvariant () const
 SegmentString (geom::CoordinateSequence *newPts, const void *newContext)
 Construct a SegmentString.
const void * getData () const
const SegmentNodeListgetNodeList () const
SegmentNodeListgetNodeList ()
unsigned int size () const
const geom::CoordinategetCoordinate (unsigned int i) const
geom::CoordinateSequencegetCoordinates () const
 Return a pointer to the CoordinateSequence associated with this SegmentString.
void notifyCoordinatesChange () const
 Notify this object that the CoordinateSequence associated with it might have been updated.
void setIsolated (bool isIsolated)
bool isIsolated () const
bool isClosed () const
int getSegmentOctant (unsigned int index) const
 Gets the octant of the segment starting at vertex index.
void addIntersections (algorithm::LineIntersector *li, unsigned int segmentIndex, int geomIndex)
 Add {SegmentNode}s for one or both intersections found for a segment of an edge to the edge intersection list.
void addIntersection (algorithm::LineIntersector *li, unsigned int segmentIndex, int geomIndex, int intIndex)
 Add an SegmentNode for intersection intIndex.
void addIntersection (const geom::Coordinate &intPt, unsigned int segmentIndex)
 Add an SegmentNode for intersection intIndex.

Static Public Member Functions

static void getNodedSubstrings (const SegmentString::NonConstVect &segStrings, SegmentString::NonConstVect *resultEdgeList)
static
SegmentString::NonConstVect * 
getNodedSubstrings (const SegmentString::NonConstVect &segStrings)

Friends

std::ostream & operator<< (std::ostream &os, const SegmentString &ss)


Detailed Description

Represents a list of contiguous line segments, and supports noding the segments.

The line segments are represented by a CoordinateSequence.

TODO: This should be changed to use a vector of Coordinate, to optimize the noding of contiguous segments by reducing the number of allocated objects.

SegmentStrings can carry a context object, which is useful for preserving topological or parentage information. All noded substrings are initialized with the same context object.

Final class.

Last port: noding/SegmentString.java rev. 1.5 (JTS-1.7)


Constructor & Destructor Documentation

geos::noding::SegmentString::SegmentString ( geom::CoordinateSequence newPts,
const void *  newContext 
)

Construct a SegmentString.

Parameters:
newPts CoordinateSequence representing the string, externally owned
newContext the context associated to this SegmentString


Member Function Documentation

geom::CoordinateSequence* geos::noding::SegmentString::getCoordinates (  )  const

Return a pointer to the CoordinateSequence associated with this SegmentString.

Note that the CoordinateSequence is not owned by this SegmentString!

void geos::noding::SegmentString::notifyCoordinatesChange (  )  const

Notify this object that the CoordinateSequence associated with it might have been updated.

This must be called so that the SegmentString object makes all the necessary checks and updates to verify consistency

int geos::noding::SegmentString::getSegmentOctant ( unsigned int  index  )  const

Gets the octant of the segment starting at vertex index.

Parameters:
index the index of the vertex starting the segment. Must not be the last index in the vertex list
Returns:
the octant of the segment at the vertex

void geos::noding::SegmentString::addIntersection ( algorithm::LineIntersector li,
unsigned int  segmentIndex,
int  geomIndex,
int  intIndex 
)

Add an SegmentNode for intersection intIndex.

An intersection that falls exactly on a vertex of the SegmentString is normalized to use the higher of the two possible segmentIndexes

void geos::noding::SegmentString::addIntersection ( const geom::Coordinate intPt,
unsigned int  segmentIndex 
)

Add an SegmentNode for intersection intIndex.

An intersection that falls exactly on a vertex of the edge is normalized to use the higher of the two possible segmentIndexes


The documentation for this class was generated from the following file:
Generated on Fri Mar 27 04:53:46 2009 for GEOS by  doxygen 1.5.4