15 #include <vlutil/vlString.h>
17 #include <osgEarth/TileKey>
19 #include <boost/function.hpp>
20 #include <boost/optional.hpp>
21 #include <boost/shared_ptr.hpp>
23 #include <boost/unordered_map.hpp>
26 #include <tbb/spin_rw_mutex.h>
38 class BilinearInterpolationGrid;
47 virtual void setEnabled(
bool);
48 virtual bool isEnabled()
const;
52 void setLOD(
unsigned lod) { myLOD = lod; }
56 virtual void addElevationGrid(
const osgEarth::TileKey& key,
ElevationGrid* grid);
61 virtual void removeElevationGrid(
const osgEarth::TileKey& key);
64 virtual boost::optional<double> findElevationAt(
const DtPoint& p,
bool* dataAvailable = 0)
const;
73 typedef tbb::spin_rw_mutex
Mutex;
86 boost::shared_ptr<ElevationGrid>
103 virtual boost::optional<double> valueAt(
double x,
double y)
const = 0;
107 :
public DtElevationWorld::ElevationGrid
110 virtual boost::optional<double> valueAt(
double x,
double y)
const;
112 template <
typename T>
115 XY(T xv, T yv) : x(xv), y(yv) { }
128 virtual double postAt(
unsigned x,
unsigned y)
const = 0;
132 :
public DtElevationWorld::ElevationGrid
135 virtual boost::optional<double> valueAt(
double x,
double y)
const;