File MultiPoint.h
File List > src > MultiPoint.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_MULTIPOINT_H_
#define _SFCGAL_MULTIPOINT_H_
#include <boost/assert.hpp>
#include <vector>
#include <boost/serialization/base_object.hpp>
#include "SFCGAL/GeometryCollection.h"
#include "SFCGAL/Point.h"
namespace SFCGAL {
class SFCGAL_API MultiPoint : public GeometryCollection {
public:
MultiPoint();
MultiPoint(const MultiPoint &other);
MultiPoint &
operator=(MultiPoint other);
virtual ~MultiPoint();
//-- SFCGAL::Geometry
virtual MultiPoint *
clone() const;
//-- SFCGAL::Geometry
virtual std::string
geometryType() const;
//-- SFCGAL::Geometry
virtual GeometryType
geometryTypeId() const;
inline Point &
pointN(const size_t &n)
{
return geometryN(n).as<Point>();
}
inline const Point &
pointN(const size_t &n) const
{
return geometryN(n).as<Point>();
}
//-- 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