File MultiPolygon.h
File List > src > MultiPolygon.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_MULTIPOLYGON_H_
#define _SFCGAL_MULTIPOLYGON_H_
#include <boost/assert.hpp>
#include <vector>
#include <boost/serialization/base_object.hpp>
#include "SFCGAL/GeometryCollection.h"
#include "SFCGAL/Polygon.h"
namespace SFCGAL {
class SFCGAL_API MultiPolygon : public GeometryCollection {
public:
MultiPolygon();
MultiPolygon(MultiPolygon const &other);
MultiPolygon &
operator=(MultiPolygon other);
virtual ~MultiPolygon();
//-- SFCGAL::Geometry
virtual MultiPolygon *
clone() const;
//-- SFCGAL::Geometry
virtual std::string
geometryType() const;
//-- SFCGAL::Geometry
virtual GeometryType
geometryTypeId() const;
inline Polygon &
polygonN(const size_t &n)
{
return geometryN(n).as<Polygon>();
}
inline const Polygon &
polygonN(const size_t &n) const
{
return geometryN(n).as<Polygon>();
}
//-- visitors
//-- SFCGAL::Geometry
virtual void
accept(GeometryVisitor &visitor);
//-- SFCGAL::Geometry
virtual void
accept(ConstGeometryVisitor &visitor) const;
template <class Archive>
void
serialize(Archive &ar, const unsigned int /*version*/)
{
ar &boost::serialization::base_object<GeometryCollection>(*this);
}
protected:
//-- SFCGAL::GeometryCollection
virtual bool
isAllowed(Geometry const &g);
};
} // namespace SFCGAL
#endif