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>&,
158 unsigned indexLevel = 0)
const = 0;
162 virtual boost::optional<unsigned>
sizeEstimate()
const = 0;
178 template <
typename FS>
179 template <
template <
class>
class PtrT>
191 DtFeatureSetWrapper<FS, PtrT, Subset>
subtile;
197 std::string label()
const;
202 boost::optional<unsigned> sizeEstimate()
const;
208 Tile& getSubtile(
unsigned);
209 const Tile& getSubtile(
unsigned)
const;
211 bool loaded(
double)
const;
213 unsigned numberOfFeatures()
const;
236 template <
typename FS>
239 ,
public boost::enable_shared_from_this<typename DtPagingFeatureSet<FS>::Grid>
245 const boost::optional<DtFeatureGeometry>&,
249 unsigned indexLevel)
const;
256 virtual bool makeLeaf(
unsigned)
const;
261 template <
typename FS>
275 bool loaded(
double = 0)
const;
276 unsigned numberOfFeatures()
const;
285 const boost::optional<DtFeatureGeometry>&,
289 unsigned indexLevel)
const;
291 boost::optional<unsigned> sizeEstimate()
const;
295 std::string label()
const;
307 void start(
bool wait);
309 FS* createFeatureSet(FS*)
const;
310 void inputLoadedCallback();