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
IQuerySort.hpp
1
#pragma once
2
3
4
#include "DM/config.hpp"
5
#include "DM/Handle.hpp"
6
#include "DM/ObjectBase.hpp"
7
#include "DM/IAddInfoLayout.hpp"
8
9
DM_NAMESPACE_BEGIN
10
11
12
/// \brief For defining post spatial query sorting
13
class
DM_API
IQuerySort
:
public
ObjectBase
14
{
15
public
:
16
enum struct
SortMode
17
{
18
distance2d = -5,
19
distance3d = -4,
20
coor_x = -3,
21
coor_y = -2,
22
coor_z = -1,
23
standard = distance3d,
24
attribute = 1
///< attribute defined by a single column layout
25
};
26
27
enum struct
SortOrder
28
{
29
ascending = 0,
30
descending = 1
31
};
32
33
static
IQuerySort *New(SortMode mode, SortOrder order = SortOrder::ascending,
const
AddInfoLayoutHandle &layout = AddInfoLayoutHandle());
34
35
protected
:
36
virtual
~IQuerySort() {}
37
38
public
:
39
virtual
bool
isDistanceBased()
const
= 0;
40
virtual
bool
isAttributeBased()
const
= 0;
41
virtual
bool
isCoordianteBased()
const
= 0;
42
43
virtual
SortMode mode()
const
= 0;
44
virtual
SortOrder
order()
const
= 0;
45
virtual
const
AddInfoLayoutHandle& layout()
const
= 0;
46
47
virtual
void
mode(SortMode m) = 0;
48
virtual
void
order(SortOrder o) = 0;
49
virtual
void
layout(
const
AddInfoLayoutHandle& l) = 0;
50
51
/// get an object copy
52
virtual
IQuerySort* clone()
const
= 0;
53
};
54
55
typedef
Handle< IQuerySort > QuerySortHandle;
56
57
DM_NAMESPACE_END
DM::SortOrder
SortOrder
Definition:
ISpatialQueryDescriptor.hpp:12
DM::IQuerySort
For defining post spatial query sorting.
Definition:
IQuerySort.hpp:13
DM::IQuerySort::SortMode
SortMode
Definition:
IQuerySort.hpp:16
DM::ObjectBase
Definition:
M/c++_api/inc/DM/ObjectBase.hpp:8