18 #include <tbb/queuing_rw_mutex.h>
19 #include <tbb/spin_rw_mutex.h>
21 #include <boost/logic/tribool.hpp>
23 namespace MAKVRinTerra
25 class DtUnusedFeatureTileTracker;
27 template <
typename FS>
38 template <
typename FS>
40 :
public DtFeatureSetWrapper<FS, boost::shared_ptr, DtPagingFeatureSetSubset<FS> >
44 typedef DtFeatureSetWrapper<FS, boost::shared_ptr, DtPagingFeatureSetSubset<FS> >
Base;
55 typedef typename FeatureSet::Feature
Feature;
58 typedef boost::shared_ptr<DtPagingFeatureSet>
Ptr;
62 typedef boost::shared_ptr<const Grid>
GridCPtr;
64 typedef boost::shared_ptr<const Leaf>
LeafCPtr;
71 typedef boost::shared_ptr<Config>
Ptr;
94 : inputFeatureSet(cfg.inputFeatureSet)
95 , unusedTileTracker(cfg.unusedTileTracker)
96 , taskQueue(cfg.taskQueue)
97 , tileFeatures(cfg.tileFeatures)
114 return Make(
new Config(cfg), bounds);
118 FS* filter(
const DtQuery&,
const boost::optional<DtFeatureGeometry>&,
DtLoadType)
const;
120 bool loaded(
double)
const;
132 template <
typename FS>
154 const boost::optional<DtFeatureGeometry>&,
157 unsigned indexLevel = 0)
const = 0;
161 virtual boost::optional<unsigned>
sizeEstimate()
const = 0;
177 template <
typename FS>
178 template <
template <
class>
class PtrT>
190 DtFeatureSetWrapper<FS, PtrT, Subset>
subtile;
196 std::string label()
const;
201 boost::optional<unsigned> sizeEstimate()
const;
207 Tile& getSubtile(
unsigned);
208 const Tile& getSubtile(
unsigned)
const;
210 bool loaded(
double)
const;
212 unsigned numberOfFeatures()
const;
234 template <
typename FS>
237 ,
public boost::enable_shared_from_this<typename DtPagingFeatureSet<FS>::Grid>
243 const boost::optional<DtFeatureGeometry>&,
246 unsigned indexLevel)
const;
253 virtual bool makeLeaf(
unsigned)
const;
258 template <
typename FS>
272 bool loaded(
double = 0)
const;
273 unsigned numberOfFeatures()
const;
282 const boost::optional<DtFeatureGeometry>&,
285 unsigned indexLevel)
const;
287 boost::optional<unsigned> sizeEstimate()
const;
291 std::string label()
const;
303 void start(
bool wait);
305 FS* createFeatureSet(FS*)
const;
306 void inputLoadedCallback();