29# error This library requires C++
35#include <simgear/compiler.h>
36#include <simgear/math/SGMath.hxx>
37#include <simgear/scene/model/particles.hxx>
38#include <simgear/structure/subsystem_mgr.hxx>
56 virtual void init ( osg::Group* terrain ) = 0;
74 const simgear::BVHMaterial** material,
75 const osg::Node* butNotFrom = 0) = 0;
90 const simgear::BVHMaterial** material,
91 const osg::Node* butNotFrom = 0) = 0;
100 const osg::Node* butNotFrom = 0) = 0;
108 virtual bool schedule_scenery(
const SGGeod& position,
double range_m,
double duration=0.0) = 0;
virtual void init(osg::Group *terrain)=0
virtual ~FGTerrain()=default
virtual void update(double dt)=0
virtual bool get_elevation_m(const SGGeod &geod, double &alt, const simgear::BVHMaterial **material, const osg::Node *butNotFrom=0)=0
Compute the elevation of the scenery at geodetic latitude lat, geodetic longitude lon and not higher ...
virtual bool schedule_scenery(const SGGeod &position, double range_m, double duration=0.0)=0
virtual bool scenery_available(const SGGeod &position, double range_m)=0
Returns true if scenery is available for the given lat, lon position within a range of range_m.
virtual bool get_cart_elevation_m(const SGVec3d &pos, double max_altoff, double &elevation, const simgear::BVHMaterial **material, const osg::Node *butNotFrom=0)=0
Compute the elevation of the scenery below the cartesian point pos.
virtual void materialLibChanged()=0
virtual bool get_cart_ground_intersection(const SGVec3d &start, const SGVec3d &dir, SGVec3d &nearestHit, const osg::Node *butNotFrom=0)=0
Compute the nearest intersection point of the line starting from start going in direction dir with th...
virtual void shutdown()=0