VR-Forces 4.2 Class Documentation
transformFeature.h
Go to the documentation of this file.
1 
2 
3 
4 
5 #pragma once
6 
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 {
18  {
19  public:
22 
23  struct Record
24  {
25  typedef std::vector<Record> Vector;
26 
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 
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:
66 
67  boost::scoped_ptr<DtFeatureSet> myFeatures;
68 
71  };
72 
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;
84 
85  unsigned numberOfAttributes(const Key::String & name) const;
86 
88 
89  private:
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)