15 #include <osg/ref_ptr>
26 class ElevationManager;
34 class DtTerrainPatchGroup;
54 virtual void setTerrainDefinition(
const std::string& modelDefinitionName);
57 virtual void enableOverlay(
int type,
const std::string& definition);
60 virtual void disableOverlay(
int type);
63 virtual void disableAllOverlays();
66 virtual void setOverlayScale(
int type,
double x,
double y);
69 virtual void setWrapMode(
int type,
int);
72 virtual void setBlendMode(
int type,
int);
75 virtual void setOverlayOffset(
int type,
double x,
double y);
78 virtual void setLayerEnabled(
const std::string& rule,
bool status);
81 virtual void setRasterLayerPosition(
int type,
int pos);
86 virtual std::string overlayDefinition(
int type);
88 virtual std::vector<double> overlayScale(
int type);
89 virtual std::vector<double> overlayOffset(
int type);
100 virtual DtVector getDatabaseOrigin()
const;
103 virtual void getBoundingBoxCenter(
float& x,
float& y,
float& z)
const;
106 osg::Group* terrainGroupNode();
109 virtual void extractNodes(
const std::string& ruleset,
bool isRegEx);
113 virtual int countNodes(
const std::string& rule)
const;
117 virtual bool getExtractedNodePosition(
const std::string& rule,
118 unsigned int index,
double& x,
double& y,
double& z)
const;
122 virtual bool getExtractedNodeOrientation(
const std::string& rule,
123 unsigned int index,
double& x,
double& y,
double& z,
double& w)
const;
128 DtModel* model,
const std::string& rule,
unsigned int index);
131 virtual osg::Node*
findNode(
const std::string& rule,
unsigned int index);
134 virtual bool isGlobalScaleTerrain()
const;
137 virtual bool getTerrainIntersection(
double x,
double y,
double z,
138 double vx,
double vy,
double vz,
double& retX,
double& retY,
double& retZ );
143 virtual void clearElevationCache();
145 bool isOsgEarth()
const
147 return myMapNode != 0;
158 void removeChildNodesAndCache();
160 static void graphBoundingBox(
const osg::Node* node, osg::BoundingBox &bbox);
164 void removeEmptyParent(osg::Node* node);
168 virtual bool getElevation(
double lonRadians,
double latRadians,
169 double& retElevation );
185 osg::ref_ptr<DtTerrainPatchGroup>
myRoot;