17 #include <tbb/spin_rw_mutex.h>
40 namespace MAKVRinTerra
44 template <
typename FS>
47 #ifdef DtObjectDebugger_Enable
55 typedef typename FeatureSet::Feature
Feature;
64 std::string label()
const;
69 bool loaded(
double = 0.0)
const;
71 unsigned numberOfFeatures()
const;
74 bool isIndexed()
const;
75 bool isCacheable(
const boost::optional<DtFeatureGeometry>& area)
const;
76 void cacheEstimate(
double& time,
double&
size,
const boost::optional<DtFeatureGeometry>& area)
const;
78 const boost::optional<DtFeatureGeometry>& area,
99 template <
typename FS>
102 #ifdef DtObjectDebugger_Enable
116 std::string label()
const;
121 bool loaded(
double = 0.0)
const;
123 unsigned numberOfFeatures()
const;
140 template <
typename FS,
typename F>
143 #ifdef DtObjectDebugger_Enable
146 ,
public std::enable_shared_from_this< DtSinkFeatureSet<FS,F> >
153 typedef std::shared_ptr<DtSinkFeatureSet>
Ptr;
180 template <
typename Factory>
183 typedef AddFeatureFactory<Factory> FactoryType;
187 if (sink->input && !sink->input->elided())
193 static Ptr Make(FeatureSet*);
198 std::string label()
const;
200 void forEachFeatureParallel(
const ForEachFunction&)
const;
201 DetachCallback forEachFeatureAsync(
const ForEachFunction& func)
const;
203 bool loaded(
double = 0.0)
const;
204 DetachCallback addLoadedCallback(
const LoadedCallback&)
const;
205 unsigned numberOfFeatures()
const;
209 virtual DetachCallback forEachFeaturePtrAsync(
const ForEachPtrFunction&)
const;
211 struct ParallelCaller;
214 struct GeometryFilterAdder;
215 struct AttributeFilterAdder;
216 struct RemoveFeature;
217 struct ParallelAdder;
218 struct RemoveCallback;
225 struct CallbackRecord;
231 typedef tbb::spin_rw_mutex
Mutex;
236 virtual void addFeatureImpl(
const FeaturePtr&);
237 virtual void removeFeature(
const FeaturePtr& feature);
248 template <
typename FS>
260 typedef std::shared_ptr<DtDeletingSinkFeatureSet>
Ptr;
261 typedef std::shared_ptr<const DtDeletingSinkFeatureSet>
CPtr;
266 static Ptr Make(
FS*);
270 Ptr shared_from_this();
271 CPtr shared_from_this()
const;
286 template <
typename FS>
289 #ifdef DtObjectDebugger_Enable
301 typedef typename std::shared_ptr<DtSourceFeatureSet>
Ptr;
306 static Ptr Make(
FS* input = 0);
313 std::string label()
const;
DtQuery myQuery
Definition: featureSetUtils.h:93
DtFeatureSet which filters out features from a feature set. Wraps a feature set with a geometry and q...
Definition: featureSetUtils.h:45
Definition: featureSetUtils.h:25
#define DT_DLL_features
stop complaining about multiple independent base classes for boost::noncopyable this should probably ...
Definition: featuresDefines.h:41
FS FeatureSet
Definition: featureSetUtils.h:109
FeatureSet::LoadedCallback LoadedCallback
Definition: featureSetUtils.h:160
FeatureSet::LoadedCallback LoadedCallback
Definition: featureSetUtils.h:112
static Ptr Make(const DtSinkFeatureSet &fs, const Factory &factory)
Definition: featureSetUtils.h:181
FS FeatureSet
Definition: featureSetUtils.h:155
Base::FeaturePtr FeaturePtr
Definition: featureSetUtils.h:258
FeatureSet::ForEachFunction ForEachFunction
Definition: featureSetUtils.h:158
FeaturePtr addFeatureRef(const Feature &f)
Definition: featureSetUtils.h:311
Definition: featureSetUtils.h:34
Definition: featureSetUtils.h:22
Definition: featureSet.h:45
FS::ConstVisitor ConstVisitor
Definition: featureSetUtils.h:60
FeaturePtr addFeature(const Feature &f)
Definition: featureSetUtils.h:310
std::shared_ptr< DtSourceFeatureSet > Ptr
Definition: featureSetUtils.h:301
virtual DetachCallback forEachFeaturePtrAsync(const ForEachPtrFunction &) const
tbb::spin_rw_mutex Mutex
Definition: featureSetUtils.h:229
Base::Feature Feature
Definition: featureSetUtils.h:257
voidpf void uLong size
Definition: ioapi.h:39
FeaturePtr addFeature(Feature *f)
these functions make it easier to take the address of addFeature
Definition: featureSetUtils.h:309
FeatureSet::DetachCallback DetachCallback
Definition: featureSetUtils.h:57
FeatureSet::ForEachFunction ForEachFunction
Definition: featureSetUtils.h:110
Base::AddFeature AddFeature
Definition: featureSetUtils.h:254
#define DT_DEFINE_OBJECT_DEBUGGER_NAME(type)
Definition: objectCounter.h:31
std::list< FeaturePtr > FeatureSequence
Definition: featureSetUtils.h:234
Default on in debug, off in release.
Definition: objectCounter.h:27
std::shared_ptr< DtDeletingSinkFeatureSet > Ptr
Definition: featureSetUtils.h:260
std::shared_ptr< CallbackRecord > CallbackRecordPtr
Definition: featureSetUtils.h:225
boost::optional< DtFeatureGeometry > myGeometry
Definition: featureSetUtils.h:94
class DT_DLL_features DtEmptyFeatureSet
Definition: featureSet.h:82
FeatureSet::ForEachFunction ForEachFunction
Definition: featureSetUtils.h:298
FeatureSet::Feature Feature
Definition: featureSetUtils.h:55
bool empty() const
Definition: featureSetUtils.h:125
class DT_DLL_features DtSinkFeatureSet
Definition: featureSet.h:85
Feature set object which will take another feature set, iterate over its contents asynchronously and ...
Definition: featureSetUtils.h:141
Definition: featureSetUtils.h:28
Definition: featureSetUtils.h:19
FeatureSequence features
callbacks for new features
Definition: featureSetUtils.h:244
Represents a set of characeters a DtFeature object can have. DtQuery objects are the way to communica...
Definition: query.h:37
bool elided() const
Definition: featureSetUtils.h:124
class DT_DLL_features DtSourceFeatureSet
Definition: featureSet.h:88
FeatureSet::DetachCallback DetachCallback
Definition: featureSetUtils.h:159
FeatureCallbacks featureCallbacks
feature set to read from
Definition: featureSetUtils.h:243
DtSinkFeatureSet< FS >::Feature Feature
Definition: featureSetUtils.h:295
FS FeatureSet
Definition: featureSetUtils.h:54
#define DT_DEFINE_OBJECT_DEBUGGER_NAME_TEMPLATE(type)
Definition: objectCounter.h:32
Definition: featureSetUtils.h:213
const std::unique_ptr< FS > input
Definition: featureSetUtils.h:242
std::unique_ptr< FS > myFeatureSet
Definition: featureSetUtils.h:90
FS::Visitor Visitor
Definition: featureSetUtils.h:59
Definition: featureSetUtils.h:31
boost::function< void(const FeaturePtr &)> ForEachPtrFunction
Definition: featureSetUtils.h:162
bool myEmptyFlag
Definition: featureSetUtils.h:95
DtSinkFeatureSet< FS >::FeaturePtr FeaturePtr
Definition: featureSetUtils.h:296
DtSinkFeatureSet Base
Definition: featureSetUtils.h:151
Dummy feature set which contains no features.
Definition: featureSetUtils.h:100
Base::FeatureSet FeatureSet
Definition: featureSetUtils.h:256
DtLoadType
Used to indicate whether to load features. See DtFeatureSetTemplate::filter.
Definition: featureSet.h:33
std::shared_ptr< const DtDeletingSinkFeatureSet > CPtr
Definition: featureSetUtils.h:261
Source feature sets are used to create your own feature sets with your own features.
Definition: featureSetUtils.h:287
FeatureSet::DetachCallback DetachCallback
Definition: featureSetUtils.h:111
FS FeatureSet
Definition: featureSetUtils.h:294
Definition: featureSetUtils.h:37
FeatureSet::LoadedCallback LoadedCallback
Definition: featureSetUtils.h:58
FeatureSet::ForEachFunction ForEachFunction
Definition: featureSetUtils.h:56
Definition: featureSetUtils.h:249
bool deleted
saved features
Definition: featureSetUtils.h:245
std::shared_ptr< DtSinkFeatureSet > Ptr
Definition: featureSetUtils.h:153
std::shared_ptr< F > FeaturePtr
Definition: featureSetUtils.h:156
DtSinkFeatureSet< FS, DtFeatureWrapper< typename FS::Feature > > Base
Definition: featureSetUtils.h:253
class DT_DLL_features DtFilteredFeatureSet
Definition: featureSet.h:79
Represents a feature geometry.
Definition: featureGeometry.h:40
FeatureSet::DetachCallback DetachCallback
Definition: featureSetUtils.h:299
std::list< CallbackRecordPtr > FeatureCallbacks
Definition: featureSetUtils.h:233
Mutex mutex
Definition: featureSetUtils.h:241