DM Namespace Reference

The namespace containing the public interface of the OPALS Datamanager Library. More...

Namespaces

 GenericConverter
 provides a set of converter function between DM and generic memory manager structures
 
 GeometricAlgorithms
 provides a set of geometric algorithms (Douglas-Peucker algorithm, densification of lines)
 
 GeometricOperations
 provides a set of geometric operations for geometry objects (e.g. intersection, join, differences, etc. )
 
 GeometricRelations
 provides a set of geometric relations function for geometry objects
 

Classes

class  Any
 
class  Array
 a template class holding a C-array of constant size. More...
 
class  Array< T, 0 >
 
class  BackInsertIteratorPH
 
class  BackInsertIteratorSTL
 
class  BadAnyCast
 
class  ConstIterator
 
struct  Default_allocator
 Allocator template class using new/delete. More...
 
class  Exception
 Any Exception thrown by the DM will be derived from this class. More...
 
class  ExceptionDemoLimit
 This exception is thrown if the data manager tries to import (or opens existing ODMs) that exceeds the demo limit (also see setLicenceFile) More...
 
class  ExceptionDropElement
 This exception is thrown if the data manager can load the requested index leaf into memory, since all loaded index leafs are currently in use. More...
 
class  FilterHelper
 
class  FrontInsertIteratorPH
 
class  FrontInsertIteratorSTL
 
class  Handle
 Smart pointer class using reference counting with support for DM objects (see ObjectBase) More...
 
class  IAddInfo
 AddInfo objects store a set of attributes. More...
 
class  IAddInfoContainer
 Interface of an add info container object (used by geometry objects) More...
 
class  IAddInfoLayout
 AddInfo layouts describe a set of attributes that can be attached to geometry objects. More...
 
class  IAddInfoLayoutFactory
 Interface to a factory object for creating AddInfo layouts. More...
 
class  IAddInfoStatistics
 stores a statistics about a set of addinfo objects. More...
 
class  IAnalyseDistance
 interface for analysing distances between polyline objects (see GeometricAlgorithms::analyseDistance) More...
 
class  IBox
 Geometry object describing a 3d box. More...
 
class  ICalculator
 Generic calculator for evaluating formulas or manipulating objects based on the OPALS generic filter syntax. More...
 
class  ICircle
 Geometry object describing a 2d circle. More...
 
class  IClassificationElement
 Element of a cross classification matrix. More...
 
class  IClassificationMatrix
 Object for storing a cross classification matrix. More...
 
class  IColBufferManagerRead
 managing interface for creating and filling point coordinates and attributes into a column based continuous memory buffer More...
 
class  IColBufferManagerWrite
 managing interface for creating and filling point coordinates and attributes into a column based continuous memory buffer More...
 
class  IColumn
 
class  IControlObject
 Control object are used to get status information of extensive processing step and/or to interrupt those processing steps. More...
 
class  ICUObject
 
class  ICUStrategy
 kernel for handling point object More...
 
class  ICylinder
 Geometry object describing a finite 3d cylinder. More...
 
class  IDatamanager
 Interface to an Datamanager (ODM) object. More...
 
class  IDatamanagerHeader
 Interface to an datamanager header (ODM) object. More...
 
class  IExport
 base class for exporting original geometry data file More...
 
class  IExportAny
 
class  IExportLAS
 
class  IExportRDB
 
class  IExportShape
 Specific import class for handling shape file imports. More...
 
class  IFile
 Imported files are preserved and represented by such objects within an ODM (see IDatamanager::beginFiles) More...
 
class  IFileHeader
 
class  IFilter
 
class  IFilterRegion
 
class  IFilterStats
 accumulate statistical information about the results of filtering More...
 
class  IGeometry
 Base class of all geometry objects. More...
 
class  IHistogram
 Class for representing a histogram. More...
 
class  IHistogramSet
 Interface to a set of histograms. More...
 
class  IImport
 base class for importing original geometry data file More...
 
class  IImportAny
 generic import for pretty much any ascii or binary original geometry data file More...
 
class  IImportGDAL
 
class  IImportLAS
 
class  IImportODM
 
class  IImportRDB
 Specific import class for handling shape file imports. More...
 
class  IImportShape
 Specific import class for handling shape file imports. More...
 
class  IImportWithTRJ
 
class  IIndexHelper
 Helper class for traversing a IndexMap object in multiple stages. More...
 
class  IIndexHelperSet
 Helper class for traversing a IndexMapSet object in multiple stages. More...
 
class  IIndexHelperSetFactory
 
class  IIndexMap
 Interface to a set of histograms. More...
 
class  IIndexMapSet
 Interface to a set of index map objects. More...
 
class  IIndexMapSetFactory
 Interface to a set of index map objects. More...
 
class  IIndexStats
 Object representing statistical information an spatial index. More...
 
class  IInsertIteratorFilter
 
class  IKernelBase
 The kernel processor concept is used for manipulating geometry objects within an ODM in an efficient and easy manner. More...
 
class  IKernelGeometry
 
class  IKernelGrid
 kernel for handling point object More...
 
class  IKernelPoint
 kernel for handling point object More...
 
class  IKernelPointEx
 kernel for handling point object More...
 
class  IKernelPolyline
 kernel for handling polyline object More...
 
class  IKnnQueryDescriptor
 
class  ILinearDistance2D
 Computes an average linear distance of a given point set in 2d. More...
 
class  ILinearDistance3D
 Computes an average linear distance of a given point set in 3d. More...
 
class  IMessageOutput
 
class  IMultiDatamanagerOpener
 For opening multiple datamanagers as single ODM object. More...
 
class  InsertIterator
 
class  InsertIteratorFilter
 
class  InsertIteratorPoint
 
class  InsertIteratorPointADJ
 
class  InsertIteratorProxy
 
class  IOverview
 
class  IParameterSet
 Object can store a set of named parameter of different type. More...
 
class  IPoint
 3d point object More...
 
class  IPointIndex
 Interface to a point index object managing the point objects within the datamanager. More...
 
class  IPointIndexLeaf
 object representing a spatial leaf within a point index More...
 
class  IPointKernelExBase
 
class  IPointKernelExWrapper
 
class  IPointSet
 a set of 3d point object More...
 
class  IPolygon
 interface to a 2.5d polygon of arbitrary complexity More...
 
class  IPolygonFactory
 factory interface for creating polygon objects More...
 
class  IPolyline
 
class  IPolylineFactory
 factory interface for creating polyline objects More...
 
class  IPolylineIndex
 Interface to an polyline and polygon index object managing all non point objects within the datamanager. More...
 
class  IProcessor
 
class  IProcessor2
 
class  IProcessorEx
 Extended processor/kernel concept. More...
 
class  IProcessStats
 Statistic interface to object that can be retrieved after a IProcessorEx run. More...
 
class  IQueryBase
 Base class of all query objects. More...
 
class  IQueryBox
 Base class of all geometry objects. More...
 
class  IQueryCircle
 Base class of all geometry objects. More...
 
class  IQueryCombined
 combined spatial queries More...
 
class  IQueryCylinder
 Base class of all geometry objects. More...
 
class  IQueryDescriptor
 
class  IQueryGeometry
 Base class of all query geometry objects. More...
 
class  IQueryIncremental
 Incremental spatial query. More...
 
class  IQueryKnn
 Base class of all query objects. More...
 
class  IQuerySort
 For defining post spatial query sorting. More...
 
class  IQuerySphere
 Base class of all geometry objects. More...
 
class  IQueryWindow
 Base class of all geometry objects. More...
 
class  IRaster
 
class  ISamplingMatrix
 base interface for all sampling matrices classes More...
 
class  ISamplingMatrixMultiple
 base interface for multi point extracting sampling matrices classes More...
 
class  ISamplingMatrixSingle
 base interface for single point extracting sampling matrices classes More...
 
class  ISamplingStrategy
 Base class of all geometry objects. More...
 
class  IShapeTableDefinition
 Object storing a dbf table definition (for shape files) More...
 
class  ISpatialIndexFactory
 
class  ISpatialQueryDescriptor
 
class  ISphere
 3d sphere object More...
 
class  ITableLayout
 
class  ITableLayoutCreator
 
class  ITableRow
 
class  Iterator
 
class  IText
 Simple text object. More...
 
class  ITrafo
 Interface for generic geometry object coordinate transformation. More...
 
class  IValueTranslator
 helper class for translating/mapping attributes before inserting into the ODM More...
 
class  IWindow
 2d window object More...
 
class  ObjectBase
 
class  ObjectBaseRefCounting
 
struct  PointAccessTraits2dADJ
 
struct  PointAccessTraits3dADJ
 
class  ProcessingInterrupted
 This exception is thrown if the processing was interrupted (usually by the user) More...
 
struct  RangeType
 range class for query geometry objects More...
 
class  StatFeature
 
class  StaticHandle
 

Typedefs

typedef char char_type
 
typedef std::size_t size_type
 
typedef std::ptrdiff_t ptrdiff_type
 
typedef Handle< IAddInfoAddInfoHandle
 
typedef StaticHandle< IAddInfoLayoutAddInfoLayoutHandle
 
typedef Handle< IAddInfoLayoutFactoryAddInfoLayoutFactoryHandle
 
typedef Handle< IAddInfoStatisticsAddInfoStatisticsHandle
 
typedef Handle< IBoxBoxHandle
 
typedef Handle< ICalculatorCalculatorHandle
 
typedef Handle< ICircleCircleHandle
 
typedef Handle< IClassificationElementClassificationElementHandle
 
typedef Handle< IClassificationMatrixClassificationMatrixHandle
 
typedef Handle< IColumnColumnHandle
 
typedef Handle< IControlObjectControlObjectHandle
 
typedef Handle< ICUObjectCUObjectHandle
 
typedef Handle< ICylinderCylinderHandle
 
typedef Handle< IDatamanagerDatamanagerHandle
 
typedef Handle< IDatamanagerHeaderDatamanagerHeaderHandle
 
typedef Handle< IFileFileHandle
 
typedef Handle< IFilterFilterHandle
 
typedef Handle< IFilterRegionFilterRegionHandle
 
typedef Handle< IFilterStatsFilterStatsHandle
 
typedef Handle< IGeometryGeometryHandle
 
typedef Handle< IHistogramHistogramHandle
 
typedef Handle< IHistogramSetHistogramSetHandle
 
typedef Handle< IIndexHelperIndexHelperHandle
 
typedef Handle< IIndexHelperSetIndexHelperSetHandle
 
typedef Handle< IIndexHelperSetFactoryIndexHelperSetFactoryHandle
 
typedef Handle< IIndexMapIndexMapHandle
 
typedef Handle< IIndexMapSetIndexMapSetHandle
 
typedef Handle< IIndexMapSetFactoryIndexMapSetFactoryHandle
 
typedef Handle< IIndexStatsIndexStatsHandle
 
typedef Handle< IKnnQueryDescriptorKnnQueryDescriptorHandle
 
typedef Handle< ILinearDistance2DLinearDistance2DHandle
 
typedef Handle< ILinearDistance3DLinearDistance3DHandle
 
typedef Handle< IMessageOutputMessageOutputHandle
 
typedef Handle< IMultiDatamanagerOpenerMultiDatamanagerOpenerHandle
 
typedef Handle< IOverviewOverviewHandle
 
typedef Handle< IParameterSetParameterSetHandle
 
typedef Handle< IPointPointHandle
 
typedef Handle< IPointIndexPointIndexHandle
 
typedef Handle< IPointIndexLeafPointIndexLeafHandle
 
typedef Handle< IPointKernelExBaseIPointKernelExBaseHandle
 
typedef Handle< IPointSetPointSetHandle
 
typedef Handle< IPolygonPolygonHandle
 
typedef Handle< IPolygonFactoryPolygonFactoryHandle
 
typedef Handle< IPolylinePolylineHandle
 
typedef Handle< IPolylineFactoryPolylineFactoryHandle
 
typedef Handle< IPolylineIndexPolylineIndexHandle
 
typedef Handle< IProcessor2Processor2Handle
 
typedef Handle< IQueryBaseQueryBaseHandle
 
typedef Handle< IQueryBoxQueryBoxHandle
 
typedef Handle< IQueryCircleQueryCircleHandle
 
typedef Handle< IQueryCombinedQueryCombinedHandle
 
typedef Handle< IQueryCylinderQueryCylinderHandle
 
typedef Handle< IQueryDescriptorQueryDescriptorHandle
 
typedef Handle< IQueryGeometryQueryGeometryHandle
 
typedef Handle< IQueryIncrementalQueryIncrementalHandle
 
typedef Handle< IQueryKnnQueryKnnHandle
 
typedef Handle< IQuerySortQuerySortHandle
 
typedef Handle< IQuerySphereQuerySphereHandle
 
typedef Handle< IQueryWindowQueryWindowHandle
 
typedef IRaster< double > IRasterDouble
 
typedef IRaster< unsigned > IRasterUnsigned
 
typedef Handle< IRasterDoubleDoubleRasterHandle
 
typedef Handle< IRasterUnsignedUnsignedRasterHandle
 
typedef Handle< ISamplingStrategySamplingStrategyHandle
 
typedef Handle< ISpatialIndexFactorySpatialIndexFactoryHandle
 
typedef Handle< ISpatialQueryDescriptorSpatialQueryDescriptorHandle
 
typedef Handle< ISphereSphereHandle
 
typedef Handle< ITableLayoutTableLayoutHandle
 
typedef Handle< ITableLayoutCreatorTableLayoutCreatorHandle
 
typedef Handle< ITextTextHandle
 
typedef Handle< IWindowWindowHandle
 
typedef std::function< void(LogSeverity, const char *)> LogFn
 
typedef ADJ_defaultPointMath2D< PointAccessTraits2dADJPointTraits2dADJ
 
typedef ADJ_defaultPointMath3D< PointAccessTraits3dADJPointTraits3dADJ
 
typedef Handle< IExportExportHandle
 
typedef Handle< IExportAnyExportAnyHandle
 
typedef Handle< IExportLASExportLASHandle
 
typedef Handle< IExportRDBExportRDBHandle
 
typedef Handle< IExportShapeExportShapeHandle
 
typedef Handle< IFileHeaderFileHeaderHandle
 
typedef Handle< IImportImportHandle
 
typedef Handle< IImportAnyImportAnyHandle
 
typedef Handle< IImportGDALImportGDALHandle
 
typedef Handle< IImportLASImportLASHandle
 
typedef Handle< IImportODMImportODMHandle
 
typedef Handle< IImportRDBImportRDBHandle
 
typedef Handle< IImportShapeImportShapeHandle
 
typedef Handle< IImportWithTRJImportWithTRJHandle
 
typedef Handle< IShapeTableDefinitionShapeTableDefinitionHandle
 
typedef Handle< ICUStrategyCUStrategyHandle
 
typedef Handle< IKernelBaseKernelBaseHandle
 
typedef Handle< IKernelGridKernelGridHandle
 
typedef Handle< IKernelPointKernelPointHandle
 
typedef Handle< IKernelPolylineKernelPolylineHandle
 
typedef Handle< IKernelGeometryKernelGeometryHandle
 
typedef Handle< IKernelPointExKernelPointExHandle
 
typedef Handle< IProcessorProcessorHandle
 
typedef Handle< IProcessStatsProcessStatsHandle
 
typedef Handle< IProcessorExProcessorExHandle
 
typedef std::vector< std::pair< int, int > > SelectionMatrix
 
typedef Handle< ISamplingMatrixSamplingMatrixHandle
 
typedef Handle< ISamplingMatrixSingleSamplingMatrixSingleHandle
 
typedef Handle< ISamplingMatrixMultipleSamplingMatrixMultipleHandle
 

Enumerations

enum  BoundaryOption { OriRectangle = 0, ConvexHull = 1, AlphaShape = 2 }
 
enum  ColumnType {
  none = -1, int32, uint32, int8,
  uint8, int16, uint16, float_,
  float32 = float_, double_, float64 = double_, string,
  int64, cstr, bool_, count
}
 Supported attribute type. More...
 
enum  ColumnSemantic {
  null, SigmaX = 20, SigmaY = 21, SigmaZ = 22,
  ScopSemantic = 23, NormalX = 24, NormalY = 25, NormalZ = 26,
  UserData = 31, PointSourceId = 32, GPSTime = 33, LASExtensions = 34,
  MaxCurvature = 35, MinCurvature = 36, MaxCurvatureDirection = 37, Residual = 38,
  NormalLeftX = 39, NormalLeftY = 40, NormalLeftZ = 41, NormalRightX = 42,
  NormalRightY = 43, NormalRightZ = 44, TangentX = 51, TangentY = 52,
  TangentZ = 53, TangentSigmaX = 54, TangentSigmaY = 55, TangentSigmaZ = 56,
  Amplitude = 58, EchoWidth = 59, CrossSection = 60, EchoNumber = 61,
  NrOfEchos = 62, BeamVectorX = 63, BeamVectorY = 64, BeamVectorZ = 65,
  EchoWidthNormalised = 66, SpreadAngle = 71, Id = 72, Estimator = 74,
  RGIndex = 75, ChannelDesc = 76, Attribute = 77, Confidence = 78,
  CustomClassId = 79, RollAngle = 83, PitchAngle = 84, YawAngle = 85,
  FileId = 86, LayerId = 87, WinputCode = 88, StructNr = 89,
  VertexId = 90, CurveParam = 91, EdgeOfFlightLine = 92, ScanDirection = 93,
  SigmaNormalFit = 94, ScanAngle = 95, TiltAngle = 96, Range = 97,
  PointLabel = 98, MarkedFlag = 99, EchoRatio = 111, ConstrainedFlag = 112,
  NormalEstimationMethod = 113, NormalPtsGiven = 114, NormalPtsUsed = 115, NormalSigma0 = 116,
  NormalEigenvalue1 = 117, NormalEigenvalue2 = 118, NormalEigenvalue3 = 119, Red = 122,
  Green = 123, Blue = 124, InfraRed = 125, UltraViolet = 126,
  PointCode = 127, NormalizedZ = 128, FaceId = 129, SegmentID = 130,
  SegmentPtsUsed = 131, ClassificationFlags = 132, Classification = 133, Reflectance = 134,
  CumulativeDistance = 136, NormalPlaneOffset = 137, WaterDepth = 138, X0 = 139,
  Y0 = 140, Z0 = 141, OmegaAngle = 142, PhiAngle = 143,
  KappaAngle = 144, PanAngle = 145, count
}
 Pre-defined attributes (attributes with semantic) More...
 
enum  EchoClass {
  unknown = -1, intermediate = 0, last = 1, first = 2,
  single = 3
}
 echo class types
 
enum  Orientation { cw = -1, undefined = 0, ccw = 1 }
 orientation enum More...
 
enum  Licence {
  ok = 0, not_available, not_active_yet, expired,
  embedded_only, file_not_found, file_inaccessible, file_corrupt,
  crypto_error, invalid_version, invalid_update, unknown_error
}
 Licence error code. More...
 
enum  GeometryType {
  null, point, polyline, polygon,
  window, box, circle, sphere,
  cylinder, pointSet
}
 
enum  IndexType {
  tiling, quadtree, kdtree, rtree,
  count
}
 
enum  SelectionMode { nearest = int(false), quadrant = int(true), octant }
 
enum  MessageLevel {
  undefined, error, warning, info,
  verbose, debug, Count
}
 Enumerator defining different importance levels of log records. More...
 
enum  QueryType {
  null, fixed, knn, incremental,
  combined
}
 
enum  KnnMode { standard, omnidirectional = standard, quadrant, octant }
 
enum  SortOrder { unsorted, asc2d, asc3d }
 
enum  QueryOrder { undefined, knnFirst, regionQueryFirst }
 enum for ordering the spatial search strategies More...
 
enum  IteratorOrder { internal, cached, sorted }
 
enum  LogSeverity : char {
  error =1, warning, info, verbose,
  debug
}
 
enum  ScopSemantic {
  null = 0, profile = 1, gridPoint = 2, alignement = 4,
  crossSection = 8, contourline = 16, bulkData = 32, spotHeights = 64,
  formline = 128, breakline = 256, borderline = 512, enclaveline = 1024,
  fautline = 2048, d2Data = 4096, offTerrain = 8192
}
 the scop semantic describes a kind of topographic semantic More...
 
enum  SpatialQueryMode { Intersect = 0, Contained = 1 }
 
enum  DataFormat {
  null = 0, hpgl, zwifi, zwifiak,
  dxf, alk, sicad, phodat,
  hlb, wnp, bwnp, aig,
  xyz, bxyz, xyzslp, ktb,
  nwp, blt, spo, vestra,
  ort, rdh, dsm, agr,
  dted, dted0, dted1, dted2,
  vrml, dgmb, mlt, raw,
  vic, osg, dem, sdts,
  srtm, ehdr, envi, ers,
  gsag, gsbg, eimg, ingr,
  pds, hdf4, hdf5, gdal,
  pyr, jpg, pix, tif,
  tiledtif, lzwtif, tiledlzwtif, stp,
  cmf, cmd, xml, csv,
  atf, las, fwf, sdw,
  sdc, stl, citygrid, shp,
  reb, msh, _2dm, ucd,
  odm, ofd, trj, btrj,
  pof, gptin, rdb, count
}
 list of known data formats More...
 
enum  Endianness { big, little, native }
 
enum  ExportError {
  noDataToWrite = -7, exportStreamNotAccessible, writingHeaderFailure, writingDataFailure,
  exportStreamClosed, exportLimitReaced, interrupted, successful = 1
}
 
enum  ExportWinputSeparator { insertSeparatorCode = 0, insertMassPoint, throwExpection }
 behaviour in case two consecutive lines have the same winput code (and structure line number) More...
 
enum  ShapeGeometry {
  none = 0, point2d = 1, polyline2d = 3, polygon2d = 5,
  pointSet2d = 8, point = 11, polyline = 13, polygon = 15,
  pointSet = 18
}
 
enum  CoordRefSys { none, internallyStored, separatePrjFile }
 coordinate reference system type More...
 
enum  ImportError {
  demoLimitExceeded = -9, unknownFormat, memoryOverflow, importStreamNotAccessible,
  headerContentsErroneous, readingData, importStreamClosed, endOfStreamReached,
  interrupted, successful = 1
}
 
enum  PolygonMerging { safe = 0, fast = 1 }
 
enum  CUStrategyOrder { auto_, horizontal, vertical }
 

Functions

void swap (Any &lhs, Any &rhs) noexcept
 
template<typename ValueType >
ValueType * any_cast (Any *operand) noexcept
 
template<typename ValueType >
const ValueType * any_cast (const Any *operand) noexcept
 
template<typename ValueType >
ValueType any_cast (Any &operand)
 
template<typename ValueType >
ValueType any_cast (const Any &operand)
 
template<class T , std::size_t N>
bool operator== (const Array< T, N > &l, const Array< T, N > &r)
 
template<class T , std::size_t N>
bool operator< (const Array< T, N > &l, const Array< T, N > &r)
 
template<class T , std::size_t N>
bool operator!= (const Array< T, N > &l, const Array< T, N > &r)
 
template<class T , std::size_t N>
bool operator> (const Array< T, N > &l, const Array< T, N > &r)
 
template<class T , std::size_t N>
bool operator<= (const Array< T, N > &l, const Array< T, N > &r)
 
template<class T , std::size_t N>
bool operator>= (const Array< T, N > &l, const Array< T, N > &r)
 
template<class T , std::size_t N>
void swap (Array< T, N > &l, Array< T, N > &r)
 
const DM_API char * getVersion ()
 Get the DM version.
 
DM_API int compareVersion (const char *versionStr)
 
DM_API bool compatibleVersion (const char *versionStr)
 Checks if the provided DM version string is compatible to the internal DM version. More...
 
DM_API void registerLayoutManager (void *dataHandle)
 
DM_API void registerCostumerData (void *dataHandle)
 
DM_API bool demoMode (void *instance)
 Demo API functions. More...
 
DM_API unsigned long long demoModeLimit ()
 Get the maximum number of points that is admissible in demo mode.
 
DM_API void registerModule (void *instance, CostumerModuleInterface const *data)
 Set costumer affiliation which is stored in the manager file. More...
 
DM_API bool setLicenceFile (const char *keyfile)
 Set full path of licence file in case it is not located in the corresponding default search path (see details below) More...
 
DM_API bool setLicenceFile (const char *keyfile, const char *embeddedSoftware)
 
DM_API Licence getLicenceErrorCode ()
 check the result of the licence test
 
const DM_API char * getLicenceErrorText ()
 
DM_API void * allocate_internal (size_t)
 
DM_API void deallocate_internal (void *)
 
template<class T , bool TT, class C , class Allocator >
void swap (Handle< T, TT, C, Allocator > &h1, Handle< T, TT, C, Allocator > &h2)
 
constexpr ICalculator::ReadAccess operator| (const ICalculator::ReadAccess &left, const ICalculator::ReadAccess &right)
 
constexpr ICalculator::WriteAccess operator| (const ICalculator::WriteAccess &left, const ICalculator::WriteAccess &right)
 
DM_API FilterHandle operator|| (const IFilter &, const IFilter &)
 
DM_API FilterHandle operator&& (const IFilter &, const IFilter &)
 
constexpr IFilter::ReadAccess operator| (const IFilter::ReadAccess &left, const IFilter::ReadAccess &right)
 
constexpr IFilter::WriteAccess operator| (const IFilter::WriteAccess &left, const IFilter::WriteAccess &right)
 
template<typename ContainerT >
InsertIteratorPointADJ< ContainerT > pointInserterADJ (ContainerT &cont)
 Creates a point inserter for ADJ_lib objects (any ADJ objects with v_addPoint functions are supported).
 
template<typename ContainerT >
InsertIteratorPoint< ContainerT > pointInserter (ContainerT &cont)
 Creates a point inserter for DM objects (any object with addPoint functions are supported).
 
template<class T >
InsertIteratorFilter< T > filterInserter (InsertIterator< T > &insIt, FilterHandle filter)
 creates a insert iterator filter for which the user has to take care of the correct live time of the provided insert iterator object
 
template<class T >
InsertIteratorFilter< T > filterInserter (InsertIterator< T > *pInsIt, FilterHandle filter)
 creates a insert iterator filter and overtake ownership of the provided insert iterator object (need to have the Delete function being overloaded)
 
template<typename PH_ContainerT >
BackInsertIteratorPH< PH_ContainerT > PH_inserter (PH_ContainerT &cont)
 
template<typename PH_ContainerT >
BackInsertIteratorPH< PH_ContainerT > PH_backInserter (PH_ContainerT &cont)
 
template<typename PH_ContainerT >
FrontInsertIteratorPH< PH_ContainerT > PH_frontInserter (PH_ContainerT &cont)
 
template<typename ContainerT >
BackInsertIteratorSTL< ContainerT > back_inserter (ContainerT &cont)
 
template<typename ContainerT >
FrontInsertIteratorSTL< ContainerT > front_inserter (ContainerT &cont)
 
DM_API bool equal2D (const IPoint &a, const IPoint &b)
 
DM_API bool equal2D (const IPoint &a, const IPoint &b, double eps)
 
DM_API bool equal3D (const IPoint &a, const IPoint &b)
 
DM_API bool equal3D (const IPoint &a, const IPoint &b, double eps)
 
DM_API double length2D (const IPoint &a, const IPoint &b)
 
DM_API double length3D (const IPoint &a, const IPoint &b)
 
DM_API QueryCombinedHandle operator&& (const IQueryGeometry &, const IQueryKnn &)
 
DM_API QueryCombinedHandle operator&& (const IQueryKnn &, const IQueryGeometry &)
 
DM_API QueryCombinedHandle operator|| (const IQueryGeometry &, const IQueryKnn &)
 
DM_API QueryCombinedHandle operator|| (const IQueryKnn &, const IQueryGeometry &)
 
constexpr IQueryDescriptor::Vocabulary operator| (IQueryDescriptor::Vocabulary left, IQueryDescriptor::Vocabulary right)
 
DM_API void convert (const DM::IPolyline &dmLine, std::vector< OGRLineString > &ogrLines)
 convert a DM::IPolyline to vector of OGRLineStrings
 
void DM_API transform (const ITrafo &trafo, IGeometry &geom, bool inv=false)
 provides a generic framework for transforming geometry objects
 
DM_API DataFormat ext2Format (const char *extension, DataFormat *carray, size_t count)
 convert an extension to a file format More...
 
const DM_API char * getName (DataFormat type)
 Convert DataFormat as textual representation.
 
const DM_API char * getDefaultExtension (DataFormat type)
 Get the default extension of the DataFormat (z.b. '.las', '.odm', etc.)
 
DM_API DataFormat recogniseDataFormat (const char *filename)
 tries to recognise the file format by its content
 
DM_API DataFormat recogniseDataFormat (const char *filename, int &ascii)
 
const DM_API char * toString (ExportError error)
 get a textual description of an export error (this function is not thread safe)
 
const DM_API char * toString (ImportError error)
 get a textual description of an import error (this function is not thread safe)
 
DM_API AddInfoStatisticsHandle importStatistics (IImport &imp, ControlObjectHandle control=ControlObjectHandle())
 import data and extract/compute an attribute statistics
 
DM_API AddInfoStatisticsHandle importStatistics (IImport &imp, double &pointDensity, ControlObjectHandle control=ControlObjectHandle())
 import data and extract/compute an attribute statistics including and estimation of the pointDensity (using the overview matrix of the odm)
 
DM_API std::pair< AddInfoStatisticsHandle, HistogramSetHandleimportStatistics (IImport &imp, const IAddInfoLayout &valueFrequencyLayout, int maxDistinctValues=1000, ControlObjectHandle control=ControlObjectHandle())
 import data and extract/compute an attribute statistics and specified value frequencies
 
DM_API std::pair< AddInfoStatisticsHandle, HistogramSetHandleimportStatistics (IImport &imp, double &pointDensity, const IAddInfoLayout &valueFrequencyLayout, int maxDistinctValues=1000, ControlObjectHandle control=ControlObjectHandle())
 import data and extract/compute an attribute statistics, specified value frequencies and estimation of the pointDensity (using the overview matrix of the odm)
 
DM_API void importStatistics (IImport &imp, AddInfoStatisticsHandle &impStat, double &pointDensity, UnsignedRasterHandle &densityOverview, DoubleRasterHandle &zmatrixOverview, double &xLowerLeftCellCenter, double &yLowerLeftCellCenter, double &cellSize, const double &nullValue, ControlObjectHandle control=ControlObjectHandle())
 import data and extract overview rasters
 
DM_API void importStatistics (IImport &imp, AddInfoStatisticsHandle &impStat, double &pointDensity, UnsignedRasterHandle &densityOverview, DoubleRasterHandle &zmatrixOverview, double &xLowerLeftCellCenter, double &yLowerLeftCellCenter, double &cellSize, const double &nullValue, HistogramSetHandle &histo, const IAddInfoLayout &valueFrequencyLayout, int maxDistinctValues=1000, ControlObjectHandle control=ControlObjectHandle())
 

Variables

class DM_API IPoint
 
template<class T >
class DM_API InsertIteratorFilter
 
class DM_API IQueryDescriptor
 
class DM_API IDatamanager
 

Detailed Description

The namespace containing the public interface of the OPALS Datamanager Library.

For a general description of the OPALS Datamanager Library and how it should be used please refer to this section.

Enumeration Type Documentation

◆ BoundaryOption

enum BoundaryOption
strong
Enumerator
OriRectangle 

minimum enclosing (oriented) rectangle

ConvexHull 

convex hull

AlphaShape 

alpha shape

◆ ColumnSemantic

enum ColumnSemantic
strong

Pre-defined attributes (attributes with semantic)

Enumerator
null 

undefined semantic

NormalX 

x value of normal (unit) vector

NormalY 

y value of normal (unit) vector

NormalZ 

z value of normal (unit) vector

NormalLeftX 

x value of normal vector left to a structure line

NormalLeftY 

y value of normal vector left to a structure line

NormalLeftZ 

z value of normal vector left to a structure line

NormalRightX 

x value of normal vector right to a structure line

NormalRightY 

y value of normal vector right to a structure line

NormalRightZ 

z value of normal vector right to a structure line

Amplitude 

Linear scale value proportional to the receiving power.

EchoWidth 

Full width at half maximum [ns].

EchoNumber 

This is the k-th return/echo for a certain pulse, where for the first return: k==1 (see LAS spec.)

NrOfEchos 

The pulse which this point is based on generated this number of returns/echoes (see LAS spec.)

BeamVectorX 

X-component of beam vector (from scanner to point)

BeamVectorY 

Y-component of beam vector (from scanner to point)

BeamVectorZ 

Z-component of beam vector (from scanner to point)

RollAngle 

[radians] as defined by the aviation norm ARINC 705

PitchAngle 

[radians] as defined by the aviation norm ARINC 705

YawAngle 

[radians] as defined by the aviation norm ARINC 705

ScanAngle 

[radians] Scan angle as defined by LAS standard: Angle between the nadir vector and the projected beam vector. Therefore, the beam vector is projected into a vertical plane that is orthogonal to the horizontal flight direction. The angle is 0 for nadir, negative to the left side (and positive to the right side) of the aircraft in flight direction.

TiltAngle 

[radians] Rotation of scanner head around secondary axis of scanner (fixed angle for 1-D scanners)

NormalEstimationMethod 

Normal estimator id (0...simple, 1...robust, 2...FMCD)

NormalPtsGiven 

Number of points given to the normal estimator.

NormalPtsUsed 

Number of points used in the normal estimator.

NormalSigma0 

Sigma0 of normal estimation.

NormalEigenvalue1 

Highest eigenvalue of normal estimation covariance matrix.

NormalEigenvalue2 

Second highest eigenvalue of normal estimation covariance matrix.

NormalEigenvalue3 

Third highest eigenvalue of normal estimation covariance matrix.

Red 

Red colour channel.

Green 

Green colour channel.

Blue 

Blue colour channel.

InfraRed 

Infrared (IR) colour channel.

UltraViolet 

Ultraviolet (UV) colour channel.

PointCode 

general alphanumeric point code

NormalizedZ 

point height above DTM

FaceId 

triangle faces id

SegmentID 

unique segment id

SegmentPtsUsed 

Number of points contributing to a single segment.

ClassificationFlags 

See LAS spec.

Classification 

See LAS spec.

CumulativeDistance 

See Riegl POF Format Spec.)

NormalPlaneOffset 

Offset from the current point to the estimated local plane.

WaterDepth 

Water depth of a submerged (bathymetric lidar) point.

X0 

Exterior reference point as defined by ORIENT.

Y0 

Exterior reference point as defined by ORIENT.

Z0 

Exterior reference point as defined by ORIENT.

OmegaAngle 

[radians] Rotation angle as defined by ORIENT

PhiAngle 

[radians] Rotation angle as defined by ORIENT

KappaAngle 

[radians] Rotation angle as defined by ORIENT

PanAngle 

[radians] Rotation of scanner head around primary axis of scanner. In case of a 1-D scanner, this is the varying angle around the only axis of the scanner.

count 

last column element

◆ ColumnType

enum ColumnType
strong

Supported attribute type.

Enumerator
int32 

name: "int32". 4 byte, signed integer

uint32 

name: "uint32". 4 byte, unsigned integer

int8 

name: "int8". 1 byte, signed integer

uint8 

name: "uint8". 1 byte, unsigned integer

int16 

name: "int16". 2 byte, integer

uint16 

name: "uint16". 2 byte, unsigned integer

float_ 

name: "float". 4 byte, real

double_ 

name: "double". 8 byte, real

string 

name: "string". c string of arbitrary size

int64 

name: "int64". 8 byte, signed integer

cstr 

name: "cstr". fixed length c string

bool_ 

name: "bool". bit (boolean)

count 

always last element

◆ CoordRefSys

enum CoordRefSys
strong

coordinate reference system type

Enumerator
none 

not definied/unset

internallyStored 

crs is stored internally

separatePrjFile 

crs is stored in a separate prj file

◆ DataFormat

enum DataFormat
strong

list of known data formats

Enumerator
wnp 

scop winput format (ascii)

bwnp 

scop winput format (binary)

gdal 

GDAL raster file format.

csv 

comma separated value format

ofd 

OPALS format definition (xml file)

trj 

trajectory format (ascii)

btrj 

trajectory format (binary)

pof 

Riegl binary Trajectory Format.

gptin 

generic panorama tin

rdb 

Riegl rdb format.

◆ ExportError

enum ExportError
strong
Enumerator
noDataToWrite 

no data to write

exportStreamNotAccessible 

export stream is not accessible

writingHeaderFailure 

error while writing the header

writingDataFailure 

error while writing data

exportStreamClosed 

export stream already closed

exportLimitReaced 

export limit is reached

interrupted 

export was interrupted

successful 

no error occurred

◆ ExportWinputSeparator

enum ExportWinputSeparator
strong

behaviour in case two consecutive lines have the same winput code (and structure line number)

Enumerator
insertSeparatorCode 

correct solution based on winput specification (but doesn't work in gve)

insertMassPoint 

work-a-round for gve by duplicating the line start point as mass point

throwExpection 

throw excpetion

◆ GeometryType

enum GeometryType
strong
Enumerator
null 

undefined geometry

point 

point type

polyline 

polyline type

polygon 

polygon type

window 

window type (2D)

box 

box type (3D)

circle 

circle (2D)

sphere 

sphere (3D)

cylinder 

cylinder (3D)

pointSet 

3d point set (3D)

◆ ImportError

enum ImportError
strong
Enumerator
demoLimitExceeded 

demo limit of the DM exceeded

unknownFormat 

unknown import file format

memoryOverflow 

memory overflow occurred

importStreamNotAccessible 

import stream is not accessible

headerContentsErroneous 

the file header content is erroneous

readingData 

general error while reading data

importStreamClosed 

import stream was already closed

endOfStreamReached 

end of input stream is reached

interrupted 

import was interrupted

successful 

no error occured

◆ IndexType

enum IndexType
strong
Enumerator
tiling 

flat tiling structure

quadtree 

quad- or octree structure (depending on index dimension)

kdtree 

kd-tree structure

rtree 

r-tree structure

◆ IteratorOrder

enum IteratorOrder
strong
Enumerator
internal 

Traverse elements in internal geometrical order (usually faster)

cached 

Traverse chached elements first (if elements are already in memory this is the fastest method)

sorted 

Traverse elements in sorted order, i.e. insert sequence (usually slower)

◆ Licence

enum Licence
strong

Licence error code.

Enumerator
ok 

no error. licence ok

not_available 

licence not available

not_active_yet 

licence not activate yet

expired 

licence expired

embedded_only 

licence valid only for embedded application

file_not_found 

licence file doesn't exist

file_inaccessible 

licence file not accessible

file_corrupt 

licence file corrupt

crypto_error 

licence crypto error

invalid_version 

licence file version error

invalid_update 

licence not valid for this update

unknown_error 

unknown error occurred

◆ MessageLevel

enum MessageLevel
strong

Enumerator defining different importance levels of log records.

Enumerator
undefined 

undefined message type

error 

some failure message. program execution will be aborted.

warning 

some weird program state which can still be handled (e.g. 'poor matrix condition', 'poor data distribution')

info 

Some progress that may be interesting in everyday-use.

verbose 

Something that may help in understanding normal program behaviour.

debug 

Anything that may help 'debugging' by means of a release-build.

Count 

number of elements

◆ Orientation

enum Orientation
strong

orientation enum

Enumerator
cw 

clockwise

undefined 

orientation undefined

ccw 

counterclockwise

◆ PolygonMerging

enum PolygonMerging
strong
Enumerator
safe 

incremental merge of polygon parts (slow but robust)

fast 

build polygon object at once (fast but fails in case of topological incorrect polygon parts)

◆ QueryOrder

enum QueryOrder
strong

enum for ordering the spatial search strategies

Enumerator
undefined 

initial value or in case only one query is defined

knnFirst 

do knn search first and 'filter' knn results with region query

regionQueryFirst 

do region query first and 'sort/filter' results based on the defined knn search

◆ QueryType

enum QueryType
strong
Enumerator
null 

undefined query type

fixed 

fixed region type

◆ ScopSemantic

enum ScopSemantic
strong

the scop semantic describes a kind of topographic semantic

Enumerator
profile 

(above all, this is the case for bulk data from old photogrammetric analogous stereo plotters).

bulk point which was gathered through sampling the interpolation surface line by line

gridPoint 

point on the interpolation surface which shall not be filtered in the interpolation process

alignement 

longitudinal section

crossSection 

cross section

contourline 

line denoting a line of equal height of the interpolation surface

bulkData 

random point on the interpolation surface without a specific semantic

spotHeights 

point on the interpolation surface with a horizontal tangent plane

formline 

line denoting a line of high curvature of the interpolation surface

breakline 

line denoting a discontinuity of the first derivative of the interpolation surface (C1-discontinuity)

borderline 

line denoting a boundary of the interpolation surface; left side is valid/included; doesn't need to be closed

enclaveline 

line denoting a boundary of the interpolation surface; left side is valid/included; doesn't need to be closed the distinction between eSEM_BORDERLINE and eSEM_ENCLAVELINE is merely necessary for the passing of line orientations through objects that do not store them (e.g. NG_Triangulation)

fautline 

wk070618: this semantic up to now is defined for a special application required by INPHO, for Winput Im-/Export eSEM_FAULTLINE shall only be applied to already interpolated RDH:

  • it either denotes areas within which the RDH height is defined by the Delaunay triangulation of the line,
  • or it specifies break lines within such an area i.e. constraints of the triangulation.

a future, more exact definition could look like this: this line denotes a discontinuity of the interpolation surface (C0-discontinuity, jump in height) and holds an orientation;

  • if 3d (~&eSEM_2D_DATA):
    • the line vertex heights define the height of the interpolation surface to the left of the line;
    • if furthermore it is closed, then the vertex heights define the interpolation surface in its interior area through a respective interpolation. The line must be counterclockwise oriented then.
    • the surface height to the right is defined by an according extrapolation of the data to the right
  • if 2d:
    • then the extrapolation of the data to the left defines the surface height to the left of the line
    • the same holds for the right side
  • if data needed for surface height definition is unavailable, the fault line shall be skipped
d2Data 

The following entries may be combined with (some of) the ones above.

geometry object has undetermined z values

offTerrain 

geometry object has certain z values, but they do not lie on the interpolation surface

◆ SortOrder

enum SortOrder
strong
Enumerator
unsorted 

results are in unspecified order

asc2d 

results are sorted ascending by 2d distance from query position

asc3d 

results are sorted ascending by 3d distance from query position

◆ SpatialQueryMode

enum SpatialQueryMode
strong
Enumerator
Intersect 

search geometries that intersect the query object

Contained 

search geometries that are fully contained by the query object

Function Documentation

◆ back_inserter()

BackInsertIteratorSTL<ContainerT> DM::back_inserter ( ContainerT &  cont)
inline

Creates a back inserter for stl containers. As container elements only handles are allowed. e.g. std::vector< DM::PointHandle >

References back_inserter().

Referenced by back_inserter().

◆ compareVersion()

DM_API int DM::compareVersion ( const char *  versionStr)

Compares the provided version against the internal DM version

Returns
1 if internal version is greater than the provided version string
0 if internal version is equal than the provided version string
-1 if internal version is less than the provided version string

◆ compatibleVersion()

DM_API bool DM::compatibleVersion ( const char *  versionStr)

Checks if the provided DM version string is compatible to the internal DM version.

The version is compatible if the internal DM version is equal or newer and no major interface changes have been made (lookup in internal compatibility map): no function, interface, etc. removed and no semantic or behavior changes introduced.

◆ demoMode()

DM_API bool DM::demoMode ( void *  instance)

Demo API functions.

the datamanager is NOT in demo mode on startup. The demo mode restricts the number of points to 1 mio points. Points above the limit are ignored during import and manager files with more than 1 mio points cannot be opened. returns the demo flag

◆ ext2Format()

DM_API DataFormat DM::ext2Format ( const char *  extension,
DataFormat carray,
size_t  count 
)

convert an extension to a file format

Parameters
[in]extensionfile extension (e.g. ".tif")
[in]carraypointer to the first element of a c-array of dataformat elements
[in]countnumber of elements

◆ front_inserter()

FrontInsertIteratorSTL<ContainerT> DM::front_inserter ( ContainerT &  cont)
inline

Creates a front inserter for stl containers. As container elements only handles are allowed. e.g. std::vector< DM::PointHandle >

References front_inserter().

Referenced by front_inserter().

◆ PH_backInserter()

BackInsertIteratorPH<PH_ContainerT> DM::PH_backInserter ( PH_ContainerT &  cont)
inline

Creates a back inserter for PH containers (supported container: PH_vector, PH_List). As container elements only handles are allowed. e.g. PH_vector< DM::PointHandle >

References PH_backInserter().

Referenced by PH_backInserter().

◆ PH_frontInserter()

FrontInsertIteratorPH<PH_ContainerT> DM::PH_frontInserter ( PH_ContainerT &  cont)
inline

Creates a front inserter for PH containers (supported container: PH_vector, PH_List). As container elements only handles are allowed. e.g. PH_vector< DM::PointHandle >

References PH_frontInserter().

Referenced by PH_frontInserter().

◆ PH_inserter()

BackInsertIteratorPH<PH_ContainerT> DM::PH_inserter ( PH_ContainerT &  cont)
inline

Creates a default inserter (back inserter) for PH containers (supported container: PH_vector, PH_List). As container elements only handles are allowed. e.g. PH_vector< DM::PointHandle >

References PH_inserter().

Referenced by PH_inserter().

◆ registerCostumerData()

DM_API void DM::registerCostumerData ( void *  dataHandle)

If the DLL version of DM library and the NG_lib are used in one project, it is necessary that synchronize the two static costumer maps. otherwise the costumer/demo information is not handled correctly DM::registerCostumerData( &DM::h_CostumerMap() );

◆ registerLayoutManager()

DM_API void DM::registerLayoutManager ( void *  dataHandle)

If the DLL version of DM library and the NG_lib are used in one project, it is HIGHLY RECOMMENDED to synchronize the two (DLL and local NG_lib) NG_AddInfoLayoutManager objects. Execute the following call before using any NG_lib object: DM::registerLayoutManager( &NG_AddInfoLayoutManager::h_data() ); (This function is not instantiated in the static library to secure that the dynamic library function is called)

◆ registerModule()

DM_API void DM::registerModule ( void *  instance,
CostumerModuleInterface const *  data 
)

Set costumer affiliation which is stored in the manager file.

Register opals module for providing the corresponding costumer information

◆ setLicenceFile()

DM_API bool DM::setLicenceFile ( const char *  keyfile)

Set full path of licence file in case it is not located in the corresponding default search path (see details below)

default search path order <Datamanager-DLL-Path>/opals.key <Datamanager-DLL-Path>/../cfg/opals.key <opals_base-DLL-Path>/opals.key <opals_base-DLL-Path>/../cfg/opals.key

Returns
true if licence is valid otherwise false (in this case use getLicenceErrorCode/getLicenceErrorText for details)