VR-Forces 4.2 Class Documentation
Home
Modules
Namespaces
Classes
Files
Examples
Behavior Models
File List
File Members
include
features
transformFeature.h
Go to the documentation of this file.
1
2
3
4
5
#pragma once
6
7
#include <
features/attributeConfigParser.h
>
8
#include <
features/feature.h
>
9
#include <
features/featureSet.h
>
10
11
#include <boost/spirit/include/qi.hpp>
12
#include <boost/spirit/include/phoenix_operator.hpp>
13
#include <boost/ptr_container/ptr_map.hpp>
14
15
namespace
MAKVRinTerra
16
{
17
class
DT_DLL_features
DtTransformFeatureSet
:
public
DtFeatureSet
18
{
19
public
:
20
typedef
DtAttributeConfigParser::TransformVector
TransformVector
;
21
typedef
DtAttributeConfigParser::DtQueryMap
QueryMap
;
22
23
struct
Record
24
{
25
typedef
std::vector<Record>
Vector
;
26
27
DtFeatureTransform
transform
;
28
DtQuery
query
;
29
31
boost::optional<DtFeature::Attribute>
attribute
;
32
33
Record
(
const
DtFeatureTransform
& transform,
const
DtQuery
& q);
34
};
35
36
typedef
std::map<DtFeature::Key::String, Record::Vector>
TransformMap
;
37
38
class
DT_DLL_features
FeatureWrapper
;
39
40
explicit
DtTransformFeatureSet
(
41
DtFeatureSet
* g,
42
const
QueryMap
& queries =
QueryMap
(),
const
TransformVector
& transforms =
TransformVector
());
43
44
std::string label()
const
;
45
void
forEachFeature(
ForEachFunction
,
DtWaitType
)
const
;
46
DtFeatureSet
* filter(
const
DtQuery
& q,
DtLoadType
)
const
;
47
DtTransformFeatureSet
* clone()
const
;
48
bool
loaded(
double
)
const
;
49
unsigned
numberOfFeatures()
const
;
50
bool
empty()
const
;
51
bool
isIndexed()
const
;
52
53
const
QueryMap
& queryMap()
const
;
54
const
TransformVector
& transforms()
const
;
55
56
bool
addTransform(
DtQuery
query,
const
DtFeatureTransform
& transform);
57
bool
addTransform(
const
QueryMap
& queries,
const
DtFeatureTransform
& transform);
58
59
const
DtFeatureSet
& input()
const
;
60
61
void
accept(
Visitor
&);
62
void
accept(
ConstVisitor
&)
const
;
63
64
protected
:
65
DtTransformFeatureSet
(
DtFeatureSet
*,
const
TransformMap
&);
66
67
boost::scoped_ptr<DtFeatureSet>
myFeatures
;
68
70
TransformMap
myTransforms
;
71
};
72
73
class
DtTransformFeatureSet::FeatureWrapper
:
public
DtFeature
74
{
75
public
:
76
FeatureWrapper
(
const
DtFeature
& feature,
const
TransformMap
&);
77
78
DtFeature::CPtr
getPtr
()
const
;
79
80
boost::optional<Attribute>
attribute
(
const
Key
& key)
const
;
81
82
void
forEachAttribute
(
ForEachFunction
f)
const
;
83
void
forEachTransformAttribute
(
ForEachFunction
f)
const
;
84
85
unsigned
numberOfAttributes
(
const
Key::String
& name)
const
;
86
87
DtFeatureGeometry
geometry
()
const
;
88
89
private
:
90
const
DtFeature
&
myFeature
;
91
const
TransformMap
&
myTransforms
;
92
};
93
}
94
Document ID: Generated on Sun Nov 24 19:49:21 EST 2013 from SVN revision 133924
Copyright © 2005-2013 VT MÄK. All Rights Reserved (
www.mak.com
)