24#ifndef _TERRAIN_PGT_HXX
25#define _TERRAIN_PGT_HXX
29# error This library requires C++
35#include <simgear/compiler.h>
36#include <simgear/props/props.hxx>
37#include <simgear/math/SGMath.hxx>
38#include <simgear/scene/model/particles.hxx>
39#include <simgear/structure/subsystem_mgr.hxx>
40#include <simgear/scene/dem/SGDem.hxx>
59 void init ( osg::Group* terrain );
77 const simgear::BVHMaterial** material,
78 const osg::Node* butNotFrom = 0);
93 const simgear::BVHMaterial** material,
94 const osg::Node* butNotFrom = 0);
103 const osg::Node* butNotFrom = 0);
118 osg::ref_ptr<osg::Group> terrain_branch;
120 SGPropertyNode_ptr _scenery_loaded, _scenery_override;
bool scenery_available(const SGGeod &position, double range_m)
Returns true if scenery is available for the given lat, lon position within a range of range_m.
static const char * staticSubsystemClassId()
bool get_cart_ground_intersection(const SGVec3d &start, const SGVec3d &dir, SGVec3d &nearestHit, const osg::Node *butNotFrom=0)
Compute the nearest intersection point of the line starting from start going in direction dir with th...
void init(osg::Group *terrain)
bool schedule_scenery(const SGGeod &position, double range_m, double duration=0.0)
bool get_elevation_m(const SGGeod &geod, double &alt, const simgear::BVHMaterial **material, const osg::Node *butNotFrom=0)
Compute the elevation of the scenery at geodetic latitude lat, geodetic longitude lon and not higher ...
bool get_cart_elevation_m(const SGVec3d &pos, double max_altoff, double &elevation, const simgear::BVHMaterial **material, const osg::Node *butNotFrom=0)
Compute the elevation of the scenery below the cartesian point pos.
void materialLibChanged()