SFCGAL  1.4.1
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...
 
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 ~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...
 
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)

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

◆ getBoundaryFromLineStrings() [1/2]

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

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

◆ getBoundaryFromLineStrings() [2/2]

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

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

◆ getBoundaryFromPolygons() [1/2]

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

◆ getBoundaryFromPolygons() [2/2]

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() [1/2]

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

get the boundary

◆ releaseBoundary() [2/2]

Geometry* SFCGAL::algorithm::BoundaryVisitor::releaseBoundary ( )

get the boundary

◆ visit() [1/24]

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

◆ visit() [2/24]

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

◆ visit() [3/24]

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

◆ visit() [4/24]

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

◆ visit() [5/24]

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

◆ visit() [6/24]

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

◆ visit() [7/24]

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

◆ visit() [8/24]

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

◆ visit() [9/24]

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

◆ visit() [10/24]

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

◆ visit() [11/24]

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

◆ visit() [12/24]

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

◆ visit() [13/24]

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

◆ visit() [14/24]

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

◆ visit() [15/24]

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

◆ visit() [16/24]

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

◆ visit() [17/24]

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

◆ visit() [18/24]

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

◆ visit() [19/24]

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

◆ visit() [20/24]

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

◆ visit() [21/24]

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

◆ visit() [22/24]

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

◆ visit() [23/24]

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

◆ visit() [24/24]

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