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;
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:31
Default on in debug, off in release.
Definition: objectCounter.h:27
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
DT_DLL_VRVCORE double length(const makVrv::DtCoordinateSystem &, const std::vector< DtVector > &vertices)
Returns the total distance of a segmented line defined by the provided vector of vertices. Coordinates are in local database coordinates. The coordinate system is used to convert between the local database coordinates and geocentric. All distance is in 2D – the Z value is ignored.
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