15 #include <geos/geom/prep/PreparedGeometryFactory.h>
17 #include <boost/optional.hpp>
21 namespace MAKVRinTerra
30 typedef boost::shared_ptr<DtGeosGeometry>
Ptr;
31 typedef boost::shared_ptr<const DtGeosGeometry>
CPtr;
39 typedef geos::geom::Geometry
type;
48 std::auto_ptr<CoordinateVector>, std::auto_ptr< std::vector<CoordinateVector> >,
60 const DtProj&,
double xmin,
double ymin,
double xmax,
double ymax);
64 const DtProj&,
const std::vector<DtPoint>& points);
66 const DtProj&,
const std::vector<DtVector>& points);
74 std::string description()
const;
76 std::auto_ptr<PointVector> points()
const;
78 unsigned numberOfPoints()
const;
83 unsigned dimension()
const;
94 std::auto_ptr<DtFeatureGeometry::RelationshipMatrix> relate(
DtFeatureGeometry)
const;
96 double length()
const;
121 virtual const geos::geom::Geometry& geosGeometry()
const = 0;
122 virtual const geos::geom::prep::PreparedGeometry* geosPreparedGeometry()
const = 0;
124 boost::shared_ptr<DtGeosGeometry> shared_from_this();
125 boost::shared_ptr<const DtGeosGeometry> shared_from_this()
const;
140 typedef geos::geom::LineString
type;
146 typedef geos::geom::Polygon
type;
152 typedef geos::geom::GeometryCollection
type;
155 template <DtFeatureGeometry::Type T>
162 typedef boost::shared_ptr<DtGeosGeometryImpl>
Ptr;
168 unsigned numberOfSubGeometries()
const;
169 std::auto_ptr<GeometryVector> subGeometries()
const;