SFCGAL  2.3.0
Public Member Functions | List of all members
SFCGAL::GeometryVisitor Class Referenceabstract

Visitor interface for non-const Geometry types. More...

#include <GeometryVisitor.h>

Inheritance diagram for SFCGAL::GeometryVisitor:
SFCGAL::detail::ForceValidityVisitor SFCGAL::Transform SFCGAL::transform::AffineTransform2 SFCGAL::transform::AffineTransform3 SFCGAL::transform::Force2D SFCGAL::transform::ForceM SFCGAL::transform::ForceOrderPoints SFCGAL::transform::ForceZ SFCGAL::transform::ForceZOrderPoints SFCGAL::transform::RoundTransform

Public Member Functions

virtual ~GeometryVisitor ()
 Default destructor for GeometryVisitor. More...
 
virtual void visit (Geometry &geometry)
 Apply this visitor to a generic Geometry reference. More...
 
virtual void visit (Point &geometry)=0
 Visit a Point geometry. More...
 
virtual void visit (LineString &geometry)=0
 Visit a LineString geometry. More...
 
virtual void visit (Polygon &geometry)=0
 Visit a Polygon geometry. More...
 
virtual void visit (Triangle &geometry)=0
 Visit a Triangle geometry. More...
 
virtual void visit (Solid &geometry)=0
 Visit a Solid geometry. More...
 
virtual void visit (MultiPoint &geometry)=0
 Visit a MultiPoint geometry. More...
 
virtual void visit (MultiLineString &geometry)=0
 Visit a MultiLineString geometry. More...
 
virtual void visit (MultiPolygon &geometry)=0
 Visit a MultiPolygon geometry. More...
 
virtual void visit (MultiSolid &geometry)=0
 Visit a MultiSolid geometry. More...
 
virtual void visit (GeometryCollection &geometry)=0
 Visit a GeometryCollection geometry. More...
 
virtual void visit (PolyhedralSurface &geometry)=0
 Visit a PolyhedralSurface geometry. More...
 
virtual void visit (TriangulatedSurface &geometry)=0
 Visit a TriangulatedSurface geometry. More...
 
virtual void visit (NURBSCurve &geometry)
 Visit a NURBSCurve geometry. More...
 

Detailed Description

Visitor interface for non-const Geometry types.

Implementations should provide behavior for each concrete geometry type via the type-specific visit overloads. The destructor is virtual to allow safe subclass destruction.

Constructor & Destructor Documentation

SFCGAL::GeometryVisitor::~GeometryVisitor ( )
virtualdefault

Default destructor for GeometryVisitor.

Defaulted destructor provided for proper destruction of derived visitor instances.

Member Function Documentation

void SFCGAL::GeometryVisitor::visit ( Geometry &  geometry)
virtual

Apply this visitor to a generic Geometry reference.

Concrete visitors can override this to provide a common fallback for any Geometry not handled by the type-specific overloads.

Parameters
geometryThe geometry to visit.
virtual void SFCGAL::GeometryVisitor::visit ( Point &  geometry)
pure virtual

Visit a Point geometry.

Parameters
geometryThe Point geometry to visit

Implemented in SFCGAL::Transform, and SFCGAL::detail::ForceValidityVisitor.

virtual void SFCGAL::GeometryVisitor::visit ( LineString &  geometry)
pure virtual

Visit a LineString geometry.

Parameters
geometryThe LineString geometry to visit

Implemented in SFCGAL::Transform, and SFCGAL::detail::ForceValidityVisitor.

virtual void SFCGAL::GeometryVisitor::visit ( Polygon &  geometry)
pure virtual
virtual void SFCGAL::GeometryVisitor::visit ( Triangle &  geometry)
pure virtual
virtual void SFCGAL::GeometryVisitor::visit ( Solid &  geometry)
pure virtual

Visit a Solid geometry.

Parameters
geometryThe Solid geometry to visit

Implemented in SFCGAL::Transform, and SFCGAL::detail::ForceValidityVisitor.

virtual void SFCGAL::GeometryVisitor::visit ( MultiPoint &  geometry)
pure virtual

Visit a MultiPoint geometry.

Parameters
geometryThe MultiPoint geometry to visit

Implemented in SFCGAL::Transform, and SFCGAL::detail::ForceValidityVisitor.

virtual void SFCGAL::GeometryVisitor::visit ( MultiLineString &  geometry)
pure virtual

Visit a MultiLineString geometry.

Parameters
geometryThe MultiLineString geometry to visit

Implemented in SFCGAL::Transform, and SFCGAL::detail::ForceValidityVisitor.

virtual void SFCGAL::GeometryVisitor::visit ( MultiPolygon &  geometry)
pure virtual

Visit a MultiPolygon geometry.

Parameters
geometryThe MultiPolygon geometry to visit

Implemented in SFCGAL::Transform, and SFCGAL::detail::ForceValidityVisitor.

virtual void SFCGAL::GeometryVisitor::visit ( MultiSolid &  geometry)
pure virtual

Visit a MultiSolid geometry.

Parameters
geometryThe MultiSolid geometry to visit

Implemented in SFCGAL::Transform, and SFCGAL::detail::ForceValidityVisitor.

virtual void SFCGAL::GeometryVisitor::visit ( GeometryCollection &  geometry)
pure virtual

Visit a GeometryCollection geometry.

Parameters
geometryThe GeometryCollection geometry to visit

Implemented in SFCGAL::Transform, and SFCGAL::detail::ForceValidityVisitor.

virtual void SFCGAL::GeometryVisitor::visit ( PolyhedralSurface &  geometry)
pure virtual

Visit a PolyhedralSurface geometry.

Parameters
geometryThe PolyhedralSurface geometry to visit

Implemented in SFCGAL::Transform, and SFCGAL::detail::ForceValidityVisitor.

virtual void SFCGAL::GeometryVisitor::visit ( TriangulatedSurface &  geometry)
pure virtual

Visit a TriangulatedSurface geometry.

Parameters
geometryThe TriangulatedSurface geometry to visit

Implemented in SFCGAL::Transform, and SFCGAL::detail::ForceValidityVisitor.

void SFCGAL::GeometryVisitor::visit ( NURBSCurve &  geometry)
virtual

Visit a NURBSCurve geometry.

ABI-compatible default visitor for NURBSCurve.

Default implementation provides no-op; override to handle NURBSCurve.

Parameters
geometryThe NURBSCurve to visit.

This default implementation does not process the NURBSCurve and exists only to preserve ABI compatibility. It throws std::runtime_error; derived visitors should override this method to provide proper NURBS handling (for example, by converting the NURBSCurve to a LineString and visiting it).

Exceptions
std::runtime_errorAlways thrown to indicate the NURBSCurve visitor is not implemented.

Reimplemented in SFCGAL::Transform, and SFCGAL::detail::ForceValidityVisitor.