Technische Universität Wien
Orientation and Processing of Airborne Laser Scanning data
Department of Geodesy and Geoinformation - Research Groups Photogrammetry and Remote Sensing
distroDM
c++_api
inc
DM
IAddInfoContainer.hpp
1
#pragma once
2
3
#include "DM/config.hpp"
4
#include "DM/IAddInfo.hpp"
5
6
DM_NAMESPACE_BEGIN
7
8
/// \brief Interface of an add info container object (used by geometry objects)
9
/**
10
Managing attributes, layout and views is a core feature of the DM library. Please refer to the
11
\ref dm_attributes section for implementation concepts and to the <a href="examples.html">examples</a>
12
section (attribute handling) for further details.
13
*/
14
class
DM_API
IAddInfoContainer
15
{
16
public
:
17
virtual
~
IAddInfoContainer
() {}
18
19
virtual
bool
hasInfo()
const
= 0;
20
virtual
const
IAddInfo
&info()
const
= 0;
21
virtual
IAddInfo
&info() = 0;
22
23
virtual
AddInfoHandle
getAddInfo()
const
= 0;
24
virtual
void
setAddInfo(
const
AddInfoHandle
&) = 0;
25
26
/// \brief applies a certain layout view onto the current addinfo object
27
/**
28
for further details see IAddInfo::setView
29
@param[in] layout view layout that should be set
30
@param[in] readOnly flag if the layout of storage object should be changed, in case the view layout is not a true subset of the storage layout
31
*/
32
virtual
void
setAddInfoView(
const
AddInfoLayoutHandle
&layout,
bool
readOnly) = 0;
33
/// \brief removes any view layout and sets the true storage layout as (internal) layout
34
virtual
void
restoreAddInfoFullLayout() = 0;
35
36
/// \brief internal creates a new addinfo object with the provide view layout that refers to the same storage object
37
/**
38
for further details see IAddInfo::cloneView
39
@param[in] layout view layout that should be set
40
@param[in] readOnly flag if the layout of storage object should be changed, in case the view layout is not a true subset of the storage layout
41
*/
42
virtual
void
cloneAddInfoView(
const
AddInfoLayoutHandle
&layout,
bool
readOnly)
const
= 0;
43
/// \brief internal creates a new addinfo object with the provide view layout and secures that the storage object contains the dataLayout
44
/**
45
for further details see IAddInfo::cloneView
46
@param[in] viewLayout view layout that should be set
47
@param[in] dataLayout defines columns that have to exist in the storage object
48
*/
49
virtual
void
cloneAddInfoView(
const
AddInfoLayoutHandle
&viewLayout,
const
AddInfoLayoutHandle
&dataLayout)
const
= 0;
50
/// \brief internal creates a new addinfo object using the true storage layout that referring to the same storage object
51
virtual
void
cloneAddInfoFullLayout()
const
= 0;
52
53
///optimised variante to access a view column
54
/// \return true is value is not null otherwise false
55
virtual
bool
getAsDoubleByView(
const
AddInfoLayoutHandle
&,
unsigned
index,
double
&value)
const
= 0;
56
virtual
bool
getAsInt64ByView(
const
AddInfoLayoutHandle
&,
unsigned
index, int64_t &value)
const
= 0;
57
58
/// removes the specified attributs from current object
59
virtual
void
eraseLayout(
const
AddInfoLayoutHandle
&) = 0;
60
61
};
62
63
DM_NAMESPACE_END
DM::IAddInfo
AddInfo objects store a set of attributes.
Definition:
M/c++_api/inc/DM/IAddInfo.hpp:14
DM::StaticHandle
Definition:
Handle.hpp:427
DM::IAddInfoContainer
Interface of an add info container object (used by geometry objects)
Definition:
IAddInfoContainer.hpp:14
DM::Handle
Smart pointer class using reference counting with support for DM objects (see ObjectBase)
Definition:
Handle.hpp:75