FGTileMgr::FGTileMgr():
state( Start ),
+ last_state( Running ),
vis( 16000 ),
- _terra_sync(NULL)
+ _terra_sync(NULL),
+ _visibilityMeters(fgGetNode("/environment/visibility-m", true)),
+ _maxTileRangeM(fgGetNode("/sim/rendering/static-lod/bare", true))
{
- _maxTileRangeM = fgGetNode("/sim/rendering/static-lod/bare", true);
}
std::copy(sc.begin(), sc.end(), back_inserter(fp));
TileEntry::setModelLoadHelper(this);
-
- _visibilityMeters = fgGetNode("/environment/visibility-m", true);
reinit();
}
if(cacheModel)
result =
SGModelLib::loadModel(fullPath.str(), globals->get_props(),
- new FGNasalModelData);
+ _disableNasalHooks->getBoolValue() ? NULL : new FGNasalModelDataProxy);
else
+ {
result=
SGModelLib::loadDeferredModel(fullPath.str(), globals->get_props(),
- new FGNasalModelData);
+ _disableNasalHooks->getBoolValue() ? NULL : new FGNasalModelDataProxy);
+ }
} catch (const sg_io_exception& exc) {
string m(exc.getMessage());
m += " ";
// disk.
void FGTileMgr::update(double)
{
- SG_LOG( SG_TERRAIN, SG_DEBUG, "FGTileMgr::update()" );
SGVec3d viewPos = globals->get_current_view()->get_view_pos();
double vis = _visibilityMeters->getDoubleValue();
schedule_tiles_at(SGGeod::fromCart(viewPos), vis);
// do tile load scheduling.
// Note that we need keep track of both viewer buckets and fdm buckets.
if ( state == Running ) {
- SG_LOG( SG_TERRAIN, SG_DEBUG, "State == Running" );
+ if (last_state != state)
+ {
+ SG_LOG( SG_TERRAIN, SG_DEBUG, "State == Running" );
+ }
if (current_bucket != previous_bucket) {
// We've moved to a new bucket, we need to schedule any
// needed tiles for loading.
// save bucket
previous_bucket = current_bucket;
} else if ( state == Start || state == Inited ) {
- SG_LOG( SG_TERRAIN, SG_INFO, "State == Start || Inited" );
+ SG_LOG( SG_TERRAIN, SG_DEBUG, "State == Start || Inited" );
// do not update bucket yet (position not valid in initial loop)
state = Running;
previous_bucket.make_bad();
}
+ last_state = state;
return 1;
}