3 #include "DM/config.hpp"
4 #include "DM/Handle.hpp"
5 #include "DM/IGeometry.hpp"
6 #include "DM/IPoint.hpp"
7 #include "DM/IPolyline.hpp"
8 #include "DM/IWindow.hpp"
10 #include "DM/IPolygon.hpp"
11 #include "DM/IFile.hpp"
12 #include "DM/Iterator.hpp"
13 #include "DM/IPointIndex.hpp"
14 #include "DM/IPolylineIndex.hpp"
15 #include "DM/IRaster.hpp"
16 #include "DM/IParameterSet.hpp"
17 #include "DM/IAddInfoStatistics.hpp"
18 #include "DM/BoundaryOption.hpp"
19 #include "DM/IDatamanagerHeader.hpp"
20 #include "DM/IHistogramSet.hpp"
21 #include "DM/IFilter.hpp"
22 #include "DM/IOverview.hpp"
23 #include "DM/IText.hpp"
24 #include "DM/ICalculator.hpp"
26 #include "DM/IControlObject.hpp"
28 #include "DM/AutoLink.hpp"
65 static IDatamanager* New(
const char *filename,
bool openIfExists =
true,
bool readOnly =
false,
bool threadSafety =
true);
66 static IDatamanager* New(
const char *filename,
const IParameterSet &,
bool openIfExists =
true,
bool readOnly =
false,
bool threadSafety =
true);
71 static IDatamanager* New(
void *instance,
const char *filename,
bool openIfExists =
true,
bool readOnly =
false,
bool threadSafety =
true);
72 static IDatamanager* New(
void *instance,
const char *filename,
const IParameterSet &,
bool openIfExists =
true,
bool readOnly =
false,
bool threadSafety =
true);
78 static IDatamanager* load(
const char *filename,
bool readOnly =
false,
bool threadSafety =
true);
82 static IDatamanager* create(
const char *filename,
bool threadSafety =
true);
88 static bool existsODM(
const char *filename);
92 static bool isValidODM(
const char *filename);
93 static bool isValidODM(
const char *filename,
TextHandle &errorMsg);
98 static BoxHandle getLimitODM(
const char *filename);
105 static bool setCRStoODM(
const char *filename,
const char *crs);
108 static void SetPointInMemoryLimit(
unsigned limit);
129 virtual int64_t sizeGeometry()
const = 0;
130 virtual int64_t sizePoint()
const = 0;
131 virtual int64_t sizePolyline()
const = 0;
132 virtual int64_t sizePolylinePoint()
const = 0;
133 virtual int64_t sizePolygon()
const = 0;
134 virtual int64_t sizePolygonPoint()
const = 0;
140 virtual bool storesOrder()
const = 0;
141 virtual bool threadSafe()
const = 0;
142 virtual int indexDim()
const = 0;
143 virtual bool readOnly()
const = 0;
161 virtual UnsignedRasterHandle getDensityOverview(
double &xLowerLeftCellCenter,
double &yLowerLeftCellCenter,
double &cellSize) = 0;
162 virtual DoubleRasterHandle getZMatrixOverview(
double &xLowerLeftCellCenter,
double &yLowerLeftCellCenter,
double &cellSize,
const double &nullValue = 0) = 0;
169 virtual void save() = 0;
184 virtual const_iterator_geometry beginGeometry(
IteratorOrder order = IteratorOrder::internal)
const = 0;
185 virtual const_iterator_geometry endGeometry(
IteratorOrder order = IteratorOrder::internal)
const = 0;
187 virtual const_iterator_point beginPoint(
IteratorOrder order = IteratorOrder::internal)
const = 0;
188 virtual const_iterator_point endPoint(
IteratorOrder order = IteratorOrder::internal)
const = 0;
190 virtual const_iterator_line beginPolyline(
IteratorOrder order = IteratorOrder::internal)
const = 0;
191 virtual const_iterator_line endPolyline(
IteratorOrder order = IteratorOrder::internal)
const = 0;
193 virtual const_iterator_file beginFile()
const=0;
194 virtual const_iterator_file endFile()
const=0;
199 virtual void searchGeometry(
const IWindow &win, insert_iterator_geometry &instIt,
bool includeRightBoundary =
true) = 0;
200 virtual void searchGeometry(
const IBox &box, insert_iterator_geometry &instIt,
bool includeRightBoundary =
true) = 0;
201 virtual void searchGeometry(
const IPolygon &p, insert_iterator_geometry &instIt) = 0;
205 virtual void searchPoint(
const IPolygon &p, insert_iterator_point &instIt) = 0;
207 virtual void searchPolyline (
const IWindow &win, insert_iterator_line &instIt,
bool includeRightBoundary =
true) = 0;
208 virtual void searchPolyline (
const IBox &box, insert_iterator_line &instIt,
bool includeRightBoundary =
true) = 0;
209 virtual void searchPolyline (
const IPolygon &p, insert_iterator_line &instIt) = 0;
222 virtual int64_t addPoint(
const IPoint &p,
bool cloneAddInfo =
true,
int fileId = -1,
int layerId = -1 ) = 0;
227 virtual void replacePoint(
const IPoint &p,
bool attributeOnly =
false) = 0;
231 virtual void deletePoint(int64_t
id) = 0;
244 virtual int64_t addPolyline(
const IPolyline &l,
bool cloneAddInfo =
true,
int fileId = -1,
int layerId = -1 ) = 0;
249 virtual void replacePolyline(
const IPolyline &l,
bool attributeOnly =
false) = 0;
253 virtual void deletePolyline(int64_t
id) = 0;
268 virtual int64_t addPolygon(
const IPolygon &p,
bool cloneAddInfo =
true,
int fileId = -1,
int layerId = -1 ) = 0;
273 virtual void replacePolygon(
const IPolygon &p,
bool attributeOnly =
false) = 0;
277 virtual void deletePolygon(int64_t
id) = 0;
299 virtual const char * getFilename()
const = 0;
302 virtual void outputDiskmanagerStatistics()
const = 0;
305 virtual void freeMemory()
const = 0;
308 virtual void interrupt(
bool inter =
true) = 0;
310 virtual bool isInterrupted()
const = 0;
312 virtual bool isManagerCorrupt()
const = 0;
319 virtual const char* getCRS()
const = 0;
321 virtual void setCRS(
const char *crs) = 0;
324 virtual void prepareLayout(
const IAddInfoLayout &layout,
bool readOnly)
const = 0;
325 virtual void prepareLayout(
const ICalculator &calc)
const = 0;
328 typedef Handle< IDatamanager > DatamanagerHandle;
Definition: Iterator.hpp:96
InsertIterator< IPoint > insert_iterator_point
Point insert iterator (used in searchPoint functions)
Definition: IDatamanager.hpp:118
2d window object
Definition: IWindow.hpp:11
ExportError
Definition: M/c++_api/inc/DM/IO/IExport.hpp:26
AddInfo layouts describe a set of attributes that can be attached to geometry objects.
Definition: IAddInfoLayout.hpp:18
ConstIterator< IPoint > const_iterator_point
Point iterator.
Definition: IDatamanager.hpp:113
Generic calculator for evaluating formulas or manipulating objects based on the OPALS generic filter ...
Definition: ICalculator.hpp:8
BoundaryOption
Definition: BoundaryOption.hpp:9
base class for importing original geometry data file
Definition: M/c++_api/inc/DM/IO/IImport.hpp:45
Geometry object describing a 3d box.
Definition: IBox.hpp:11
ImportError
Definition: M/c++_api/inc/DM/IO/IImport.hpp:20
ConstIterator< IPolyline > const_iterator_line
Polyline iterator.
Definition: IDatamanager.hpp:114
interface to a 2.5d polygon of arbitrary complexity
Definition: IPolygon.hpp:33
Definition: Handle.hpp:427
IteratorOrder
Definition: Iterator.hpp:9
Object can store a set of named parameter of different type.
Definition: IParameterSet.hpp:11
ConstIterator< IFile > const_iterator_file
File iterator.
Definition: IDatamanager.hpp:115
Definition: IPolyline.hpp:14
Definition: Iterator.hpp:183
base class for exporting original geometry data file
Definition: M/c++_api/inc/DM/IO/IExport.hpp:50
InsertIterator< IGeometry > insert_iterator_geometry
Geometry insert iterator (used in searchGeometry function)
Definition: IDatamanager.hpp:117
InsertIterator< IPolyline > insert_iterator_line
Polyline insert iterator (used in searchPolyline functions)
Definition: IDatamanager.hpp:119
ConstIterator< IGeometry > const_iterator_geometry
Geometry iterator.
Definition: IDatamanager.hpp:112
Interface to an Datamanager (ODM) object.
Definition: IDatamanager.hpp:57
Smart pointer class using reference counting with support for DM objects (see ObjectBase)
Definition: Handle.hpp:75
Definition: M/c++_api/inc/DM/ObjectBase.hpp:8
3d point object
Definition: IPoint.hpp:14