15 #include <geos/geom/prep/PreparedGeometryFactory.h>
17 #include <tbb/recursive_mutex.h>
19 #include <boost/optional.hpp>
23 namespace MAKVRinTerra
32 typedef boost::shared_ptr<DtGeosGeometry>
Ptr;
33 typedef boost::shared_ptr<const DtGeosGeometry>
CPtr;
38 typedef tbb::recursive_mutex
Mutex;
43 typedef geos::geom::Geometry
type;
52 std::auto_ptr<CoordinateVector>, std::auto_ptr< std::vector<CoordinateVector> >,
64 const DtProj&,
double xmin,
double ymin,
double xmax,
double ymax);
68 const DtProj&,
const std::vector<DtPoint>& points);
70 const DtProj&,
const std::vector<DtVector>& points);
78 std::string description()
const;
80 std::auto_ptr<PointVector> points()
const;
82 unsigned numberOfPoints()
const;
87 unsigned dimension()
const;
98 std::auto_ptr<DtFeatureGeometry::RelationshipMatrix> relate(
DtFeatureGeometry)
const;
100 double length()
const;
125 virtual const geos::geom::Geometry& geosGeometry()
const = 0;
126 virtual const geos::geom::prep::PreparedGeometry* geosPreparedGeometry()
const = 0;
128 boost::shared_ptr<DtGeosGeometry> shared_from_this();
129 boost::shared_ptr<const DtGeosGeometry> shared_from_this()
const;
144 typedef geos::geom::LineString
type;
150 typedef geos::geom::Polygon
type;
156 typedef geos::geom::GeometryCollection
type;
159 template <DtFeatureGeometry::Type T>
166 typedef boost::shared_ptr<DtGeosGeometryImpl>
Ptr;
172 unsigned numberOfSubGeometries()
const;
173 std::auto_ptr<GeometryVector> subGeometries()
const;