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;
122 bool isCacheable(
const boost::optional<DtFeatureGeometry>& area)
const;
123 void cacheEstimate(
double& time,
double&
size,
const boost::optional<DtFeatureGeometry>& area)
const;
126 const boost::optional<DtFeatureGeometry>& area,
139 template <
typename FS>
161 const boost::optional<DtFeatureGeometry>&,
165 unsigned indexLevel = 0)
const = 0;
169 virtual boost::optional<unsigned>
sizeEstimate()
const = 0;
185 template <
typename FS>
186 template <
template <
class>
class PtrT>
204 std::string label()
const;
209 boost::optional<unsigned> sizeEstimate()
const;
215 Tile& getSubtile(
unsigned);
216 const Tile& getSubtile(
unsigned)
const;
218 bool loaded(
double)
const;
220 unsigned numberOfFeatures()
const;
243 template <
typename FS>
246 ,
public boost::enable_shared_from_this<typename DtPagingFeatureSet<FS>::Grid>
252 const boost::optional<DtFeatureGeometry>&,
256 unsigned indexLevel)
const;
258 void cacheEstimate(
double& time,
double&
size,
const boost::optional<DtFeatureGeometry>& area)
const;
261 const boost::optional<DtFeatureGeometry>& area,
269 virtual bool makeLeaf(
unsigned)
const;
274 template <
typename FS>
288 bool loaded(
double = 0)
const;
289 unsigned numberOfFeatures()
const;
298 const boost::optional<DtFeatureGeometry>&,
302 unsigned indexLevel)
const;
304 boost::optional<unsigned> sizeEstimate()
const;
308 std::string label()
const;
320 void start(
bool wait);
322 FS* createFeatureSet(FS*)
const;
323 void inputLoadedCallback();