18 #include <tbb/spin_mutex.h>
19 #include <tbb/mutex.h>
20 #include <tbb/compat/condition_variable>
22 #include <boost/signals2.hpp>
24 namespace MAKVRinTerra
29 template <
typename FS>
33 ,
public boost::enable_shared_from_this<DtAsyncLoadingFeatureSet<FS> >
37 typedef boost::shared_ptr<DtAsyncLoadingFeatureSet>
Ptr;
40 typedef boost::weak_ptr<DtAsyncLoadingFeatureSet>
WPtr;
56 virtual void start(
bool wait);
58 std::string label()
const;
63 bool loaded(
double)
const;
65 unsigned numberOfFeatures()
const;
69 unsigned size()
const;
70 boost::shared_ptr<DtUnusedFeatureTileTracker::Trackable> getPtr()
const;
82 typedef boost::signals2::signal_type<
84 boost::signals2::keywords::mutex_type<tbb::spin_mutex> >::type
LoadedSignal;
87 struct SizeCalculator;
92 virtual bool run(
bool wait);
100 virtual void inputLoadedCallback();
102 struct InputLoadedCaller;
106 const boost::optional<DtFeatureGeometry>& geom,
125 template <
typename FS>
127 :
public DtFeatureSetWrapper<FS, boost::shared_ptr>
128 ,
public DtObjectDebugger<typename DtAsyncLoadingFeatureSet<FS>::LoadingFeatureSet>
131 typedef DtFeatureSetWrapper<FS, boost::shared_ptr>
Base;
139 const boost::shared_ptr<FS>&,
146 std::string
label()
const;
153 struct WrapWithLoadingFeatureRef;
160 template <
typename FS>
165 typedef boost::shared_ptr<DtQueueLoadingFeatureSet>
Ptr;
166 typedef boost::shared_ptr<DtQueueLoadingFeatureSet>
WPtr;
178 void start(
bool wait);
182 const boost::optional<DtFeatureGeometry>& geom,
183 const boost::shared_ptr<Queue>& queue,