15 #include <geos/geom/prep/PreparedGeometryFactory.h>
17 #include <boost/optional.hpp>
21 namespace MAKVRinTerra
27 #ifdef DtObjectDebugger_Enable
32 typedef boost::shared_ptr<DtGeosGeometry>
Ptr;
33 typedef boost::shared_ptr<const DtGeosGeometry>
CPtr;
41 typedef geos::geom::Geometry
type;
53 std::auto_ptr<CoordinateVector>, std::auto_ptr< std::vector<CoordinateVector> >,
65 const DtProj&,
double xmin,
double ymin,
double xmax,
double ymax);
69 const DtProj&,
const std::vector<DtPoint>& points);
71 const DtProj&,
const std::vector<DtVector>& points);
79 std::string description()
const;
80 std::string toWKT()
const;
82 std::auto_ptr<PointVector> points()
const;
84 unsigned numberOfPoints()
const;
89 unsigned dimension()
const;
100 std::auto_ptr<DtFeatureGeometry::RelationshipMatrix> relate(
DtFeatureGeometry)
const;
102 double length()
const;
129 virtual const geos::geom::Geometry& geosGeometry()
const = 0;
131 virtual const geos::geom::prep::PreparedGeometry* geosPreparedGeometry()
const = 0;
133 boost::shared_ptr<DtGeosGeometry> shared_from_this();
134 boost::shared_ptr<const DtGeosGeometry> shared_from_this()
const;
136 void markValid() { myValidFlag =
true; };
139 boost::optional<bool> myValidFlag;
151 typedef geos::geom::LineString
type;
157 typedef geos::geom::Polygon
type;
163 typedef geos::geom::GeometryCollection
type;
166 template <DtFeatureGeometry::Type T>
169 #ifdef DtObjectDebugger_Enable
175 typedef boost::shared_ptr<DtGeosGeometryImpl>
Ptr;
184 unsigned numberOfSubGeometries()
const;
185 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:41
DtFeatureGeometry implementation wrapping a geos feature.
Definition: geosGeometry.h:25
DtGeosGeometryImpl()
Definition: geosGeometry.h:177
const GeosType< T >::type & geosGeometry() const
Definition: geosGeometry.h:187
#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:60
geos::geom::Point type
Definition: geosGeometry.h:145
boost::shared_ptr< DtGeosGeometryImpl > Ptr
Definition: geosGeometry.h:175
DtGeosGeometryImpl< DtFeatureGeometry::AreaType > DtGeosArea
Definition: geosGeometry.h:196
geos::geom::Geometry type
Definition: geosGeometry.h:41
geos::geom::GeometryCollection type
Definition: geosGeometry.h:163
geos::geom::Polygon type
Definition: geosGeometry.h:157
DtGeosGeometryImpl(const DtGeosGeometryImpl &orig)
Definition: geosGeometry.h:178
Definition: geosGeometry.h:39
Handle< PointType > Point
Definition: featureGeometry.h:69
Represents some coordinate system. The terms "coordinate system", "projection", "spatial reference"...
Definition: proj.h:44
Definition: vrfObjectManipulationHandlerBaseClass.h:60
DtGeosGeometry()
Definition: geosGeometry.h:44
Handle< PathType > Path
Definition: featureGeometry.h:70
boost::shared_ptr< const DtGeosGeometry > CPtr
Definition: geosGeometry.h:33
DtGeosGeometryImpl< DtFeatureGeometry::PathType > DtGeosPath
Definition: geosGeometry.h:195
Create a new MAK exception type that inherits from boost::exception. Tag is what differentiates this ...
Definition: taggedException.h:15
std::vector< geos::geom::Coordinate > CoordinateVector
Definition: geosGeometry.h:47
Definition: geosGeometry.h:167
boost::shared_ptr< DtGeosGeometry > Ptr
Definition: geosGeometry.h:32
DtFeatureGeometry::Type Type
Definition: geosGeometry.h:36
DtGeosGeometryImpl< DtFeatureGeometry::PointType > DtGeosPoint
Definition: geosGeometry.h:194
geos::geom::LineString type
Definition: geosGeometry.h:151
DtFeatureGeometry::Implementation Implementation
Definition: geosGeometry.h:35
Represents a feature geometry.
Definition: featureGeometry.h:39
DtGeosGeometryImpl< DtFeatureGeometry::UnknownType > DtGeosUnknown
Definition: geosGeometry.h:193