File BoundaryVisitor.h
File List > algorithm > BoundaryVisitor.h
Go to the documentation of this file
// Copyright (c) 2012-2013, IGN France.
// Copyright (c) 2012-2022, Oslandia.
// SPDX-License-Identifier: LGPL-2.0-or-later
#ifndef _SFCGAL_ALGORITHM_BOUNDARYVISITOR_H_
#define _SFCGAL_ALGORITHM_BOUNDARYVISITOR_H_
#include "SFCGAL/GeometryVisitor.h"
#include "SFCGAL/detail/graph/GeometryGraph.h"
#include "SFCGAL/detail/graph/GeometryGraphBuilder.h"
namespace SFCGAL {
namespace algorithm {
class SFCGAL_API BoundaryVisitor : public ConstGeometryVisitor {
public:
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);
Geometry *
releaseBoundary();
protected:
void
getBoundaryFromLineStrings(const graph::GeometryGraph &g);
void
getBoundaryFromPolygons(const graph::GeometryGraph &g);
private:
std::unique_ptr<Geometry> _boundary;
};
} // namespace algorithm
} // namespace SFCGAL
#endif