18 #include <tbb/mutex.h>
19 #include <tbb/spin_mutex.h>
20 #include <tbb/tbb_thread.h>
21 #include <tbb/compat/condition_variable>
23 #include <boost/signals2.hpp>
25 namespace MAKVRinTerra
30 template <
typename FS>
34 ,
public boost::enable_shared_from_this<DtAsyncLoadingFeatureSet<FS> >
38 typedef boost::shared_ptr<DtAsyncLoadingFeatureSet>
Ptr;
41 typedef boost::weak_ptr<DtAsyncLoadingFeatureSet>
WPtr;
57 virtual void start(
bool wait);
59 std::string label()
const;
64 bool loaded(
double)
const;
66 unsigned numberOfFeatures()
const;
69 unsigned size()
const;
70 boost::shared_ptr<DtUnusedFeatureTileTracker::Trackable> getPtr()
const;
85 struct SizeCalculator;
90 virtual bool run(
bool wait);
98 virtual void inputLoadedCallback();
100 struct InputLoadedCaller;
104 const boost::optional<DtFeatureGeometry>& geom,
123 template <
typename FS>
125 :
public DtFeatureSetWrapper<FS, boost::shared_ptr>
126 ,
public DtObjectDebugger<typename DtAsyncLoadingFeatureSet<FS>::LoadingFeatureSet>
129 typedef DtFeatureSetWrapper<FS, boost::shared_ptr>
Base;
137 const boost::shared_ptr<FS>&,
144 std::string
label()
const;
151 struct WrapWithLoadingFeatureRef;
158 template <
typename FS>
163 typedef boost::shared_ptr<DtQueueLoadingFeatureSet>
Ptr;
164 typedef boost::shared_ptr<DtQueueLoadingFeatureSet>
WPtr;
176 void start(
bool wait);
180 const boost::optional<DtFeatureGeometry>& geom,
181 const boost::shared_ptr<Queue>& queue,