VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
transformFeatureSet.h
Go to the documentation of this file.
1 
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/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, DtAttributeConfigParser& parser, const TransformVector& transforms = TransformVector());
46 
47  virtual std::string label() const override;
48  virtual void forEachFeatureParallel(const ForEachFunction&) const override;
49  virtual DetachCallback forEachFeatureAsync(const ForEachFunction&) const override;
50  virtual DtFeatureSet* filter(
51  const DtQuery& q, const boost::optional<DtFeatureGeometry>&, DtLoadType) const override;
52  virtual DtTransformFeatureSet* clone() const override;
53  virtual bool loaded(double) const override;
54  virtual DetachCallback addLoadedCallback(const LoadedCallback&) const override;
55  virtual unsigned numberOfFeatures() const override;
56  virtual bool elided() const override;
57  virtual bool empty() const override;
58  virtual bool isIndexed() const override;
59  virtual bool isCacheable(const boost::optional<DtFeatureGeometry>& area) const override;
60  virtual void cacheEstimate(
61  double& time, double& size, const boost::optional<DtFeatureGeometry>& area) const override;
62  virtual void cacheData(
63  const boost::optional<DtFeatureGeometry>& area, DtFeatureCacheProgressCallback* progress) const override;
64 
65  const QueryMap& queryMap() const;
66  const TransformVector& transforms() const;
67 
68  bool addTransform(DtQuery query, const DtFeatureTransform& transform, bool back=true);
69  bool addTransform(
70  const QueryMap& queries, const DtFeatureTransform& transform, bool back=true);
71  bool addTransform(
72  DtAttributeConfigParser& parser, const DtFeatureTransform&, bool back=true);
73 
74  const DtFeatureSet& input() const;
75 
76  virtual void accept(Visitor&) override;
77  virtual void accept(ConstVisitor&) const override;
78 
79  protected:
81 
82  const std::unique_ptr<DtFeatureSet> myFeatures;
83 
86  };
87 
89  : public DtFeatureRefWrapper<DtFeature>
90  {
91  public:
92  FeatureWrapper(const DtFeature& feature, const TransformMap&);
93 
94  virtual DtFeature* clone() const override;
95 
96  virtual boost::optional<Attribute> attribute(const Key& key) const override;
97 
98  virtual void forEachAttribute(ForEachFunction f) const override;
100 
101  virtual unsigned numberOfAttributes(const Key::String& name) const override;
102 
103  private:
105  };
106 }
107 
Represents a set of DtFeature objects or others which conform to the DtFeature concept.
Definition: featureSet.h:105
std::map< DtFeature::Key::String, DtQuery > DtQueryMap
Map of query names to queries.
Definition: attributeConfigParser.h:86
DtQuery query
Definition: transformFeatureSet.h:28
boost::function< void(const Feature &)> ForEachFunction
Callback type type for iterating through features.
Definition: featureSet.h:160
virtual DtFeature * clone() const override
Return a pointer to an object which represents the current feature. In order to enable paging and eff...
#define DT_DLL_features
stop complaining about multiple independent base classes for boost::noncopyable this should probably ...
Definition: featuresDefines.h:41
boost::function< void()> DetachCallback
Callback type for disconnecting other callbacks. Functions which register callbacks return a DetachCa...
Definition: featureSet.h:132
virtual void forEachAttribute(ForEachFunction f) const override
Calls the provided callback on each attribute.
Key used to lookup attributes. The DtFeature interface is a dictionary that maps Key objects to attri...
Definition: feature.h:67
Definition: transformFeatureSet.h:17
DtAttributeConfigParser::DtQueryMap QueryMap
Definition: transformFeatureSet.h:21
DtAttributeConfigParser::TransformVector TransformVector
Definition: transformFeatureSet.h:20
voidpf void uLong size
Definition: ioapi.h:39
virtual unsigned numberOfAttributes(const Key::String &name) const override
Number of attributes with a given key.
boost::function< void(const Key &, const Attribute &)> ForEachFunction
Callback used to iterating through attributes with ForEachAttribute.
Definition: feature.h:150
Feature system config file.
virtual boost::optional< Attribute > attribute(const Key &key) const override
Get attribute at a certain key.
Represents a set of characeters a DtFeature object can have. DtQuery objects are the way to communica...
Definition: query.h:37
DtFeatureTransform transform
Definition: transformFeatureSet.h:27
Definition: transformFeatureSet.h:23
std::map< DtFeature::Key::String, Record::Vector > TransformMap
Definition: transformFeatureSet.h:36
void forEachTransformAttribute(ForEachFunction f) const
boost::optional< DtFeature::Attribute > attribute
Attribute evaluated without feature to see if it&#39;s global.
Definition: transformFeatureSet.h:31
Parser for feature system configuration file. Constructs a set of DtQuery objects, each with a name from the configuration file. Also constructs a list of DtFeatureTransform objects, using DtQuery names as filters.
Definition: attributeConfigParser.h:78
DtLoadType
Used to indicate whether to load features. See DtFeatureSetTemplate::filter.
Definition: featureSet.h:33
const TransformMap & myTransforms
Definition: transformFeatureSet.h:104
Case insensitive string.
Definition: feature.h:70
Represents a feature attribute transform.
Definition: attributeConfigParser.h:32
Represents a GIS feature. Features consist of a DtFeatureGeometry (2.5D geometric vector data) and a ...
Definition: feature.h:36
Definition: feature.h:228
std::vector< Record > Vector
Definition: transformFeatureSet.h:25
boost::function< void()> LoadedCallback
Callback type type for async notification of feature set loading.
Definition: featureSet.h:163
FeatureWrapper(const DtFeature &feature, const TransformMap &)
const std::unique_ptr< DtFeatureSet > myFeatures
Definition: transformFeatureSet.h:82
TransformMap myTransforms
processed data for this object
Definition: transformFeatureSet.h:85
std::vector< DtFeatureTransform > TransformVector
Sequence of transforms.
Definition: attributeConfigParser.h:89
Definition: transformFeatureSet.h:88
Visitors allow feature sets which are implemented as compound structures of other feature sets to exp...
Definition: featureSet.h:437

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)