SFCGAL  1.3.0
Public Member Functions | Protected Member Functions | List of all members
SFCGAL::algorithm::BoundaryVisitor Class Reference

Compute the boundary for a Geometry. More...

#include <BoundaryVisitor.h>

Inheritance diagram for SFCGAL::algorithm::BoundaryVisitor:
SFCGAL::ConstGeometryVisitor

Public Member Functions

virtual void visit (const Point &g)
 
virtual void visit (const LineString &g)
 
virtual void visit (const Polygon &g)
 
virtual void visit (const Triangle &g)
 
virtual void visit (const Solid &g)
 
virtual void visit (const MultiPoint &g)
 
virtual void visit (const MultiLineString &g)
 
virtual void visit (const MultiPolygon &g)
 
virtual void visit (const MultiSolid &g)
 
virtual void visit (const GeometryCollection &g)
 
virtual void visit (const PolyhedralSurface &g)
 
virtual void visit (const TriangulatedSurface &g)
 
GeometryreleaseBoundary ()
 get the boundary More...
 
- Public Member Functions inherited from SFCGAL::ConstGeometryVisitor
virtual ~ConstGeometryVisitor ()
 
virtual void visit (const Geometry &g)
 apply visitor More...
 

Protected Member Functions

void getBoundaryFromLineStrings (const graph::GeometryGraph &g)
 get the boundary vertices for a set of LineString in a GeometryGraph More...
 
void getBoundaryFromPolygons (const graph::GeometryGraph &g)
 get the boundary edges for a set of Polygons in a GeometryGraph More...
 

Detailed Description

Compute the boundary for a Geometry.

boundary( Point ) : GEOMETRYCOLLECTION EMPTY boundary( LineString ) : either GEOMETRYCOLLECTION EMPTY is the LineString is closed, or MULTIPOINT(2) boundary( Polygon ) : LINESTRING | MULTILINESTRING (polygon rings) boundary( Triangle ) : either GEOMETRYCOLLECTION EMPTY is the LineString is closed, or MULTIPOINT(2)

boundary( MultiPoint ) : GEOMETRYCOLLECTION EMPTY boundary( MultiLineString ) : either GEOMETRYCOLLECTION EMPTY or single occurance points

Warning
GeometryCollection are not supported in the general case

@┼žodo Solid

Todo:

MultiPolygon, PolyhedralSurface, TriangulatedSurface (same graph algorithm, edges without parallel or opposite)

MultiSolid : faced elimination

Todo:
GeometryCollection : complex for heterogeneous collection (not supported in GEOS)

Member Function Documentation

void SFCGAL::algorithm::BoundaryVisitor::getBoundaryFromLineStrings ( const graph::GeometryGraph g)
protected

get the boundary vertices for a set of LineString in a GeometryGraph

void SFCGAL::algorithm::BoundaryVisitor::getBoundaryFromPolygons ( const graph::GeometryGraph g)
protected

get the boundary edges for a set of Polygons in a GeometryGraph

Warning
not optimal (edges could be counted using complex< vertex_descriptor >)
Todo:
merge resulting edges
Geometry * SFCGAL::algorithm::BoundaryVisitor::releaseBoundary ( )

get the boundary

void SFCGAL::algorithm::BoundaryVisitor::visit ( const Point g)
virtual
void SFCGAL::algorithm::BoundaryVisitor::visit ( const LineString g)
virtual
void SFCGAL::algorithm::BoundaryVisitor::visit ( const Polygon g)
virtual
void SFCGAL::algorithm::BoundaryVisitor::visit ( const Triangle g)
virtual
void SFCGAL::algorithm::BoundaryVisitor::visit ( const Solid g)
virtual
void SFCGAL::algorithm::BoundaryVisitor::visit ( const MultiPoint g)
virtual
void SFCGAL::algorithm::BoundaryVisitor::visit ( const MultiLineString g)
virtual
void SFCGAL::algorithm::BoundaryVisitor::visit ( const MultiPolygon g)
virtual
void SFCGAL::algorithm::BoundaryVisitor::visit ( const MultiSolid g)
virtual
void SFCGAL::algorithm::BoundaryVisitor::visit ( const GeometryCollection g)
virtual
void SFCGAL::algorithm::BoundaryVisitor::visit ( const PolyhedralSurface g)
virtual
void SFCGAL::algorithm::BoundaryVisitor::visit ( const TriangulatedSurface g)
virtual