_odg(0),
_scale(0),
_view_heading(0),
- _resultTexture(0),
_font_size(0),
_font_spacing(0),
_rangeNm(0)
NavDisplay::~NavDisplay()
{
+ delete _odg;
}
-
void
NavDisplay::init ()
{
_serviceable_node = _Instrument->getNode("serviceable", true);
_rangeNode = _Instrument->getNode("range", true);
- _rangeNode->setDoubleValue(40.0);
+ if (!_rangeNode->hasValue()) {
+ _rangeNode->setDoubleValue(40.0);
+ }
_rangeNode->addChangeListener(_cacheListener.get());
_rangeNode->addChangeListener(_forceUpdateListener.get());
_xCenterNode = _Instrument->getNode("x-center");
- _xCenterNode->setDoubleValue(0.5);
+ if (!_xCenterNode->hasValue()) {
+ _xCenterNode->setDoubleValue(0.5);
+ }
_xCenterNode->addChangeListener(_forceUpdateListener.get());
_yCenterNode = _Instrument->getNode("y-center");
- _yCenterNode->setDoubleValue(0.5);
+ if (!_yCenterNode->hasValue()) {
+ _yCenterNode->setDoubleValue(0.5);
+ }
_yCenterNode->addChangeListener(_forceUpdateListener.get());
// texture name to use in 2D and 3D instruments
_texture_path = _Instrument->getStringValue("radar-texture-path",
"Aircraft/Instruments/Textures/od_wxradar.rgb");
- _resultTexture = FGTextureManager::createTexture(_texture_path.c_str(), false);
string path = _Instrument->getStringValue("symbol-texture-path",
"Aircraft/Instruments/Textures/nd-symbols.png");
// no mipmap or else alpha will mix with pixels on the border of shapes, ruining the effect
_symbolTexture = SGLoadTexture2D(tpath, NULL, false, false);
- FGInstrumentMgr *imgr = (FGInstrumentMgr *)globals->get_subsystem("instrumentation");
- _odg = (FGODGauge *)imgr->get_subsystem("od_gauge");
+ _odg = new FGODGauge;
_odg->setSize(_Instrument->getIntValue("texture-size", 512));
_route = static_cast<FGRouteMgr*>(globals->get_subsystem("route-manager"));
_testModeNode = _Instrument->getChild("test-mode", 0, true);
_testModeNode->setBoolValue(false);
+ _viewHeadingNode = _Instrument->getChild("view-heading-deg", 0, true);
// OSG geometry setup
_radarGeode = new osg::Geode;
} else {
_view_heading = _Instrument->getFloatValue("heading-up-deg", 0.0);
}
+ _viewHeadingNode->setDoubleValue(_view_heading);
double xCenterFrac = _xCenterNode->getDoubleValue();
double yCenterFrac = _yCenterNode->getDoubleValue();