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
IQueryCombined.hpp
1
#pragma once
2
3
#include "DM/config.hpp"
4
#include "DM/Handle.hpp"
5
#include "DM/IQueryBase.hpp"
6
#include "DM/IQueryGeometry.hpp"
7
#include "DM/IQueryKnn.hpp"
8
9
DM_NAMESPACE_BEGIN
10
11
/// \brief combined spatial queries
12
class
DM_API
IQueryCombined
:
public
IQueryBase
13
{
14
public
:
15
enum struct
Operation
16
{
17
and_,
18
or_
19
};
20
21
static
IQueryCombined
* New(
const
IQueryGeometry
®ion,
const
IQueryKnn
&knn, Operation op = Operation::and_);
22
static
IQueryCombined
* New(
const
IQueryKnn
&knn,
const
IQueryGeometry
®ion, Operation op = Operation::and_);
23
24
protected
:
25
virtual
~
IQueryCombined
() {}
26
27
public
:
28
virtual
const
IQueryBase
&left()
const
= 0;
29
virtual
const
IQueryBase
&right()
const
= 0;
30
virtual
Operation operatorType()
const
= 0;
31
32
virtual
void
left(
const
IQueryBase
&l) = 0;
33
virtual
void
right(
const
IQueryBase
&r) = 0;
34
virtual
void
operatorType(Operation op) = 0;
35
};
36
37
typedef
Handle< IQueryCombined >
QueryCombinedHandle
;
38
39
// and/or operator as alternative for IQueryCombined::New method
40
DM_API
QueryCombinedHandle
operator&&(
const
IQueryGeometry
&,
const
IQueryKnn
&);
41
DM_API
QueryCombinedHandle
operator&&(
const
IQueryKnn
&,
const
IQueryGeometry
&);
42
43
DM_API
QueryCombinedHandle
operator||(
const
IQueryGeometry
&,
const
IQueryKnn
&);
44
DM_API
QueryCombinedHandle
operator||(
const
IQueryKnn
&,
const
IQueryGeometry
&);
45
46
47
DM_NAMESPACE_END
48
DM::IQueryGeometry
Base class of all query geometry objects.
Definition:
IQueryGeometry.hpp:17
DM::IQueryBase
Base class of all query objects.
Definition:
IQueryBase.hpp:55
DM::IQueryKnn
Base class of all query objects.
Definition:
IQueryKnn.hpp:22
DM::IQueryCombined
combined spatial queries
Definition:
IQueryCombined.hpp:12
DM::Handle
Smart pointer class using reference counting with support for DM objects (see ObjectBase)
Definition:
Handle.hpp:75