1
0
Fork 0

Refactor ridgelift: use simgear::TiedPropertyList

This commit is contained in:
Torsten Dreyer 2011-02-14 20:26:39 +01:00
parent 7bc9749d91
commit 03aac3de8b
2 changed files with 8 additions and 28 deletions

View file

@ -103,42 +103,20 @@ void FGRidgeLift::init(void)
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) {

View file

@ -36,6 +36,7 @@
#include <string>
using std::string;
#include <simgear/props/tiedpropertylist.hxx>
class FGRidgeLift : public SGSubsystem {
public:
@ -80,6 +81,7 @@ private:
SGPropertyNode_ptr _user_latitude_node;
SGPropertyNode_ptr _ground_elev_node;
simgear::TiedPropertyList _tiedProperties;
};
#endif // _FG_RidgeLift_HXX