SFCGAL
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...
 
virtual void visit (const Point &g)=0
 
virtual void visit (const LineString &g)=0
 
virtual void visit (const Polygon &g)=0
 
virtual void visit (const Triangle &g)=0
 
virtual void visit (const Solid &g)=0
 
virtual void visit (const MultiPoint &g)=0
 
virtual void visit (const MultiLineString &g)=0
 
virtual void visit (const MultiPolygon &g)=0
 
virtual void visit (const MultiSolid &g)=0
 
virtual void visit (const GeometryCollection &g)=0
 
virtual void visit (const PolyhedralSurface &g)=0
 
virtual void visit (const TriangulatedSurface &g)=0
 

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)
Todo:

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

MultiSolid : faced elimination

Member Function Documentation

◆ getBoundaryFromLineStrings()

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

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

◆ getBoundaryFromPolygons()

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

◆ releaseBoundary()

auto SFCGAL::algorithm::BoundaryVisitor::releaseBoundary ( )

get the boundary

◆ visit() [1/12]

void SFCGAL::algorithm::BoundaryVisitor::visit ( const GeometryCollection g)
virtual

◆ visit() [2/12]

void SFCGAL::algorithm::BoundaryVisitor::visit ( const LineString g)
virtual

◆ visit() [3/12]

void SFCGAL::algorithm::BoundaryVisitor::visit ( const MultiLineString g)
virtual

◆ visit() [4/12]

void SFCGAL::algorithm::BoundaryVisitor::visit ( const MultiPoint g)
virtual

◆ visit() [5/12]

void SFCGAL::algorithm::BoundaryVisitor::visit ( const MultiPolygon g)
virtual

◆ visit() [6/12]

void SFCGAL::algorithm::BoundaryVisitor::visit ( const MultiSolid g)
virtual

◆ visit() [7/12]

void SFCGAL::algorithm::BoundaryVisitor::visit ( const Point g)
virtual

◆ visit() [8/12]

void SFCGAL::algorithm::BoundaryVisitor::visit ( const Polygon g)
virtual

◆ visit() [9/12]

void SFCGAL::algorithm::BoundaryVisitor::visit ( const PolyhedralSurface g)
virtual

◆ visit() [10/12]

void SFCGAL::algorithm::BoundaryVisitor::visit ( const Solid g)
virtual

◆ visit() [11/12]

void SFCGAL::algorithm::BoundaryVisitor::visit ( const Triangle g)
virtual

◆ visit() [12/12]

void SFCGAL::algorithm::BoundaryVisitor::visit ( const TriangulatedSurface g)
virtual