Add scenery functions working on SGGeod in place of SGLocation.
This commit is contained in:
parent
55a978f2a8
commit
1845a95fd3
2 changed files with 21 additions and 14 deletions
|
@ -316,29 +316,29 @@ void FGTileMgr::update_queues()
|
||||||
int FGTileMgr::update( double visibility_meters )
|
int FGTileMgr::update( double visibility_meters )
|
||||||
{
|
{
|
||||||
SGLocation *location = globals->get_current_view()->getSGLocation();
|
SGLocation *location = globals->get_current_view()->getSGLocation();
|
||||||
return update( location, visibility_meters );
|
double lon = location->getLongitude_deg();
|
||||||
|
double lat = location->getLatitude_deg();
|
||||||
|
return update(SGGeod::fromDegM(lon, lat, 0), visibility_meters);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int FGTileMgr::update( SGLocation *location, double visibility_meters)
|
int FGTileMgr::update( SGLocation *location, double visibility_meters)
|
||||||
|
{
|
||||||
|
double lon = location->getLongitude_deg();
|
||||||
|
double lat = location->getLatitude_deg();
|
||||||
|
return update(SGGeod::fromDegM(lon, lat, 0), visibility_meters);
|
||||||
|
}
|
||||||
|
|
||||||
|
int FGTileMgr::update( const SGGeod& location, double visibility_meters)
|
||||||
{
|
{
|
||||||
SG_LOG( SG_TERRAIN, SG_DEBUG, "FGTileMgr::update()" );
|
SG_LOG( SG_TERRAIN, SG_DEBUG, "FGTileMgr::update()" );
|
||||||
|
|
||||||
longitude = location->getLongitude_deg();
|
longitude = location.getLongitudeDeg();
|
||||||
latitude = location->getLatitude_deg();
|
latitude = location.getLatitudeDeg();
|
||||||
// add 1.0m to the max altitude to give a little leeway to the
|
|
||||||
// ground reaction code.
|
|
||||||
altitude_m = location->getAltitudeASL_ft() * SG_FEET_TO_METER + 1.0;
|
|
||||||
|
|
||||||
// if current altitude is apparently not initialized, set max
|
|
||||||
// altitude to something big.
|
|
||||||
if ( altitude_m < -1000 ) {
|
|
||||||
altitude_m = 10000;
|
|
||||||
}
|
|
||||||
// SG_LOG( SG_TERRAIN, SG_DEBUG, "FGTileMgr::update() for "
|
// SG_LOG( SG_TERRAIN, SG_DEBUG, "FGTileMgr::update() for "
|
||||||
// << longitude << " " << latatitude );
|
// << longitude << " " << latatitude );
|
||||||
|
|
||||||
current_bucket.set_bucket( longitude, latitude );
|
current_bucket.set_bucket( location );
|
||||||
// SG_LOG( SG_TERRAIN, SG_DEBUG, "Updating tile list for "
|
// SG_LOG( SG_TERRAIN, SG_DEBUG, "Updating tile list for "
|
||||||
// << current_bucket );
|
// << current_bucket );
|
||||||
fgSetInt( "/environment/current-tile-id", current_bucket.gen_index() );
|
fgSetInt( "/environment/current-tile-id", current_bucket.gen_index() );
|
||||||
|
@ -391,6 +391,12 @@ void FGTileMgr::prep_ssg_nodes(float vis) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool FGTileMgr::scenery_available(const SGGeod& position, double range_m)
|
||||||
|
{
|
||||||
|
return scenery_available(position.getLatitudeDeg(),
|
||||||
|
position.getLongitudeDeg(), range_m);
|
||||||
|
}
|
||||||
|
|
||||||
bool FGTileMgr::scenery_available(double lat, double lon, double range_m)
|
bool FGTileMgr::scenery_available(double lat, double lon, double range_m)
|
||||||
{
|
{
|
||||||
// sanity check (unfortunately needed!)
|
// sanity check (unfortunately needed!)
|
||||||
|
|
|
@ -72,7 +72,6 @@ private:
|
||||||
// current longitude latitude
|
// current longitude latitude
|
||||||
double longitude;
|
double longitude;
|
||||||
double latitude;
|
double latitude;
|
||||||
double altitude_m;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* tile cache
|
* tile cache
|
||||||
|
@ -96,6 +95,7 @@ public:
|
||||||
// read it from disk.
|
// read it from disk.
|
||||||
int update( double visibility_meters );
|
int update( double visibility_meters );
|
||||||
int update( SGLocation *location, double visibility_meters);
|
int update( SGLocation *location, double visibility_meters);
|
||||||
|
int update( const SGGeod& location, double visibility_meters);
|
||||||
|
|
||||||
// Prepare the ssg nodes corresponding to each tile. For each
|
// Prepare the ssg nodes corresponding to each tile. For each
|
||||||
// tile, set the ssg transform and update it's range selector
|
// tile, set the ssg transform and update it's range selector
|
||||||
|
@ -109,6 +109,7 @@ public:
|
||||||
/// within a range of range_m.
|
/// within a range of range_m.
|
||||||
/// lat and lon are expected to be in degrees.
|
/// lat and lon are expected to be in degrees.
|
||||||
bool scenery_available(double lat, double lon, double range_m);
|
bool scenery_available(double lat, double lon, double range_m);
|
||||||
|
bool scenery_available(const SGGeod& position, double range_m);
|
||||||
|
|
||||||
// Load a model for a tile
|
// Load a model for a tile
|
||||||
osg::Node* loadTileModel(const string& modelPath, bool cacheModel);
|
osg::Node* loadTileModel(const string& modelPath, bool cacheModel);
|
||||||
|
|
Loading…
Add table
Reference in a new issue