]> git.mxchange.org Git - flightgear.git/blobdiff - src/Scenery/scenery.cxx
Move viewer-related sources to separate folder.
[flightgear.git] / src / Scenery / scenery.cxx
index ebf36ae28c357418a023d0092e872ff0b3e7c7a0..eeec77bb48fd53ec6966004e02b82caa65627e21 100644 (file)
@@ -45,7 +45,7 @@
 #include <simgear/scene/bvh/BVHNode.hxx>
 #include <simgear/scene/bvh/BVHLineSegmentVisitor.hxx>
 
-#include <Main/renderer.hxx>
+#include <Viewer/renderer.hxx>
 #include <Main/fg_props.hxx>
 
 #include "tilemgr.hxx"
@@ -212,6 +212,8 @@ private:
 FGScenery::FGScenery()
 {
     SG_LOG( SG_TERRAIN, SG_INFO, "Initializing scenery subsystem" );
+    // keep reference to pager singleton, so it cannot be destroyed while FGScenery lives
+    _pager = FGScenery::getPagerSingleton();
 }
 
 FGScenery::~FGScenery() {
@@ -285,7 +287,7 @@ FGScenery::get_elevation_m(const SGGeod& geod, double& alt,
       return false;
 
   geodEnd = SGGeod::fromCart(intersectVisitor.getLineSegment().getEnd());
-  alt = geod.getElevationM();
+  alt = geodEnd.getElevationM();
   if (material)
       *material = intersectVisitor.getMaterial();
 
@@ -327,7 +329,7 @@ bool FGScenery::scenery_available(const SGGeod& position, double range_m)
     SGVec3f p = SGVec3f::fromGeod(SGGeod::fromGeodM(position, elev));
     osg::FrameStamp* framestamp
             = globals->get_renderer()->getViewer()->getFrameStamp();
-    simgear::CheckSceneryVisitor csnv(getPagerSingleton(), toOsg(p), range_m, framestamp);
+    simgear::CheckSceneryVisitor csnv(_pager, toOsg(p), range_m, framestamp);
     // currently the PagedLODs will not be loaded by the DatabasePager
     // while the splashscreen is there, so CheckSceneryVisitor force-loads
     // missing objects in the main thread