VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
transformFeatureSet.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  explicit DtTransformFeatureSet(
45  DtFeatureSet* fs,
47  const TransformVector& transforms = TransformVector());
48 
49  std::string label() const;
50  void forEachFeatureParallel(const ForEachFunction&) const;
51  DetachCallback forEachFeatureAsync(const ForEachFunction&) const;
52  DtFeatureSet* filter(
53  const DtQuery& q, const boost::optional<DtFeatureGeometry>&, DtLoadType) const;
54  DtTransformFeatureSet* clone() const;
55  bool loaded(double) const;
56  DetachCallback addLoadedCallback(const LoadedCallback&) const;
57  unsigned numberOfFeatures() const;
58  bool elided() const;
59  bool empty() const;
60  bool isIndexed() const;
61 
62  const QueryMap& queryMap() const;
63  const TransformVector& transforms() const;
64 
65  bool addTransform(DtQuery query, const DtFeatureTransform& transform, bool back=true);
66  bool addTransform(
67  const QueryMap& queries, const DtFeatureTransform& transform, bool back=true);
68  bool addTransform(
69  DtAttributeConfigParser& parser, const DtFeatureTransform&, bool back=true);
70 
71  const DtFeatureSet& input() const;
72 
73  void accept(Visitor&);
74  void accept(ConstVisitor&) const;
75 
76  protected:
78 
79  boost::scoped_ptr<DtFeatureSet> myFeatures;
80 
83  };
84 
86  : public DtFeatureRefWrapper<DtFeature>
87  {
88  public:
89  FeatureWrapper(const DtFeature& feature, const TransformMap&);
90 
91  DtFeature* clone() const;
92 
93  boost::optional<Attribute> attribute(const Key & key) const;
94 
95  void forEachAttribute(ForEachFunction f) const;
97 
98  unsigned numberOfAttributes(const Key::String & name) const;
99 
100  private:
102  };
103 }
104 

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)