void FGRidgeLift::bind() {
string prop;
+ _tiedProperties.setRoot( fgGetNode("/environment/ridge-lift",true));
for( int i = 0; i < 5; i++ ) {
- prop = CreateIndexedPropertyName("/environment/ridge-lift/probe-elev-m", i );
- fgTie( prop.c_str(), this, i, &FGRidgeLift::get_probe_elev_m); // read-only
-
- prop = CreateIndexedPropertyName("/environment/ridge-lift/probe-lat-deg", i );
- fgTie( prop.c_str(), this, i, &FGRidgeLift::get_probe_lat_deg); // read-only
-
- prop = CreateIndexedPropertyName("/environment/ridge-lift/probe-lon-deg", i );
- fgTie( prop.c_str(), this, i, &FGRidgeLift::get_probe_lon_deg); // read-only
+ _tiedProperties.Tie( "probe-elev-m", i, this, i, &FGRidgeLift::get_probe_elev_m );
+ _tiedProperties.Tie( "probe-lat-deg", i, this, i, &FGRidgeLift::get_probe_lat_deg );
+ _tiedProperties.Tie( "probe-lon-deg", i, this, i, &FGRidgeLift::get_probe_lon_deg );
}
for( int i = 0; i < 4; i++ ) {
- prop = CreateIndexedPropertyName("/environment/ridge-lift/slope", i );
- fgTie( prop.c_str(), this, i, &FGRidgeLift::get_slope); // read-only
+ _tiedProperties.Tie( "slope", i, this, i, &FGRidgeLift::get_slope );
}
}
void FGRidgeLift::unbind() {
- string prop;
-
- for( int i = 0; i < 5; i++ ) {
-
- prop = CreateIndexedPropertyName("/environment/ridge-lift/probe-elev-m", i );
- fgUntie( prop.c_str() );
-
- prop = CreateIndexedPropertyName("/environment/ridge-lift/probe-lat-deg", i );
- fgUntie( prop.c_str() );
-
- prop = CreateIndexedPropertyName("/environment/ridge-lift/probe-lon-deg", i );
- fgUntie( prop.c_str() );
- }
-
- for( int i = 0; i < 4; i++ ) {
- prop = CreateIndexedPropertyName("/environment/ridge-lift/slope", i );
- fgUntie( prop.c_str() );
- }
+ _tiedProperties.Untie();
}
void FGRidgeLift::update(double dt) {
// position is geodetic, need geocentric for advanceRadM
SGGeod myGeodPos = SGGeod::fromDegM( probe_lon_deg[0], probe_lat_deg[0], 20000.0 );
SGGeoc myGeocPos = SGGeoc::fromGeod( myGeodPos );
- double ground_wind_from_rad = _surface_wind_from_deg_node->getDoubleValue() * SG_DEGREES_TO_RADIANS + SG_PI;
+ double ground_wind_from_rad = _surface_wind_from_deg_node->getDoubleValue() * SG_DEGREES_TO_RADIANS;
// compute the remaining probes
for (unsigned i = 1; i < sizeof(probe_elev_m)/sizeof(probe_elev_m[0]); i++) {