X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FScenery%2Ftilemgr.hxx;h=766513d019053ae7f8b900fa9bbf17eca95b8130;hb=3d4806adbe6705f785fd950bd4b4afde1cb4f8d2;hp=fcc23d3518411f4e3324b13864e4ebb80e515466;hpb=ff14ddf914773862770ac1ea4870def14fa67d08;p=flightgear.git diff --git a/src/Scenery/tilemgr.hxx b/src/Scenery/tilemgr.hxx index fcc23d351..766513d01 100644 --- a/src/Scenery/tilemgr.hxx +++ b/src/Scenery/tilemgr.hxx @@ -28,8 +28,9 @@ #include #include -#include -#include +#include "SceneryPager.hxx" +#include "tileentry.hxx" +#include "tilecache.hxx" namespace osg { @@ -42,15 +43,15 @@ class SGTerraSync; class SGReaderWriterOptions; } -class FGTileMgr : public SGSubsystem, public simgear::ModelLoadHelper { +class FGTileMgr : public SGSubsystem { private: // Tile loading state enum load_state { - Start = 0, - Inited = 1, - Running = 2 + Start = 0, + Inited = 1, + Running = 2 }; load_state state, last_state; @@ -66,10 +67,6 @@ private: SGBucket pending; osg::ref_ptr _options; - // x and y distance of tiles to load/draw - float vis; - int xrange, yrange; - // current longitude latitude double longitude; double latitude; @@ -78,42 +75,39 @@ private: /** * tile cache */ - simgear::TileCache tile_cache; + TileCache tile_cache; simgear::SGTerraSync* _terra_sync; - // Update the various queues maintained by the tilemagr (private - // internal function, do not call directly.) + // update various queues internal queues void update_queues(); + // schedule tiles for the viewer bucket + void schedule_tiles_at(const SGGeod& location, double rangeM); + static void refresh_tile(void* tileMgr, long tileIndex); SGPropertyNode_ptr _visibilityMeters; SGPropertyNode_ptr _maxTileRangeM, _disableNasalHooks; - + SGPropertyNode_ptr _scenery_loaded, _scenery_override; + + osg::ref_ptr _pager; + public: FGTileMgr(); - ~FGTileMgr(); // Initialize the Tile Manager virtual void init(); virtual void reinit(); - virtual void update(double dt); - int schedule_tiles_at(const SGGeod& location, double rangeM); - - const SGBucket& get_current_bucket () const { return current_bucket; } - /// Returns true if scenery is available for the given lat, lon position - /// within a range of range_m. - /// lat and lon are expected to be in degrees. + // Returns true if scenery is available for the given lat, lon position + // within a range of range_m. + // lat and lon are expected to be in degrees. bool schedule_scenery(const SGGeod& position, double range_m, double duration=0.0); - // Load a model for a tile - osg::Node* loadTileModel(const std::string& modelPath, bool cacheModel); - // Returns true if tiles around current view position have been loaded bool isSceneryLoaded(); };