16 #include <tbb/recursive_mutex.h>
18 #include <boost/optional.hpp>
20 namespace MAKVRinTerra
27 typedef boost::shared_ptr<DtGeosGeometry>
Ptr;
28 typedef boost::shared_ptr<const DtGeosGeometry>
CPtr;
33 typedef tbb::recursive_mutex
Mutex;
38 typedef geos::geom::Geometry
type;
47 std::auto_ptr<CoordinateVector>, std::auto_ptr< std::vector<CoordinateVector> >,
59 const DtProj&,
double xmin,
double ymin,
double xmax,
double ymax);
63 const DtProj&, std::vector<DtPoint> points);
65 const DtProj&, std::vector<DtVector> points);
73 std::string description()
const;
75 std::auto_ptr<PointVector> points()
const;
77 unsigned numberOfPoints()
const;
82 unsigned dimension()
const;
91 std::auto_ptr<DtFeatureGeometry::RelationshipMatrix> relate(
DtFeatureGeometry)
const;
93 double length()
const;
115 virtual const geos::geom::Geometry& geosGeometry()
const = 0;
117 boost::shared_ptr<DtGeosGeometry> shared_from_this();
118 boost::shared_ptr<const DtGeosGeometry> shared_from_this()
const;
127 typedef geos::geom::Point
type;
133 typedef geos::geom::LineString
type;
139 typedef geos::geom::Polygon
type;
145 typedef geos::geom::GeometryCollection
type;
148 template <DtFeatureGeometry::Type T>
152 typedef boost::shared_ptr<DtGeosGeometryImpl>
Ptr;
158 unsigned numberOfSubGeometries()
const;
159 std::auto_ptr<GeometryVector> subGeometries()
const;