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;
75 std::string toWKT()
const;
77 std::auto_ptr<PointVector> points()
const;
79 unsigned numberOfPoints()
const;
84 unsigned dimension()
const;
95 std::auto_ptr<DtFeatureGeometry::RelationshipMatrix> relate(
DtFeatureGeometry)
const;
97 double length()
const;
124 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;
#define DT_DLL_features
stop complaining about multiple independent base classes for boost::noncopyable this should probably ...
Definition: featuresDefines.h:36
DtFeatureGeometry implementation wrapping a geos feature.
Definition: geosGeometry.h:25
const GeosType< T >::type & geosGeometry() const
Definition: geosGeometry.h:175
#define DT_DEFINE_OBJECT_DEBUGGER_NAME(type)
Definition: objectCounter.h:265
Default on in debug, off in release.
Definition: objectCounter.h:31
Definition: featureGeometry.h:54
geos::geom::Point type
Definition: geosGeometry.h:138
boost::shared_ptr< DtGeosGeometryImpl > Ptr
Definition: geosGeometry.h:166
DtGeosGeometryImpl< DtFeatureGeometry::AreaType > DtGeosArea
Definition: geosGeometry.h:184
geos::geom::Geometry type
Definition: geosGeometry.h:39
geos::geom::GeometryCollection type
Definition: geosGeometry.h:156
geos::geom::Polygon type
Definition: geosGeometry.h:150
Definition: geosGeometry.h:37
Handle< PointType > Point
Definition: featureGeometry.h:63
Represents some coordinate system.
Definition: proj.h:44
Definition: vrfObjectManipulationHandlerBaseClass.h:61
Handle< PathType > Path
Definition: featureGeometry.h:64
boost::shared_ptr< const DtGeosGeometry > CPtr
Definition: geosGeometry.h:31
DtGeosGeometryImpl< DtFeatureGeometry::PathType > DtGeosPath
Definition: geosGeometry.h:183
Create a new MAK exception type that inherits from boost::exception.
Definition: taggedException.h:15
std::vector< geos::geom::Coordinate > CoordinateVector
Definition: geosGeometry.h:42
Definition: geosGeometry.h:160
boost::shared_ptr< DtGeosGeometry > Ptr
Definition: geosGeometry.h:30
DtFeatureGeometry::Type Type
Definition: geosGeometry.h:34
DtGeosGeometryImpl< DtFeatureGeometry::PointType > DtGeosPoint
Definition: geosGeometry.h:182
boost::optional< bool > myValidFlag
Definition: geosGeometry.h:132
geos::geom::LineString type
Definition: geosGeometry.h:144
DtFeatureGeometry::Implementation Implementation
Definition: geosGeometry.h:33
Represents a feature geometry.
Definition: featureGeometry.h:35
DtGeosGeometryImpl< DtFeatureGeometry::UnknownType > DtGeosUnknown
Definition: geosGeometry.h:181