SFCGAL  2.2.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

void visit (const Point &g) override
 
void visit (const LineString &g) override
 
void visit (const Polygon &g) override
 
void visit (const Triangle &g) override
 
void visit (const Solid &g) override
 
void visit (const MultiPoint &g) override
 
void visit (const MultiLineString &g) override
 
void visit (const MultiPolygon &g) override
 
void visit (const MultiSolid &g) override
 
void visit (const GeometryCollection &g) override
 
void visit (const PolyhedralSurface &g) override
 
void visit (const TriangulatedSurface &g) override
 
Geometry * releaseBoundary ()
 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
auto SFCGAL::algorithm::BoundaryVisitor::releaseBoundary ( )

get the boundary

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