From: Bertrand <bco...@us...> - 2016-08-28 12:13:12
|
Update of /cvsroot/jsbsim/JSBSim/src/initialization In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv779/src/initialization Modified Files: FGInitialCondition.h FGInitialCondition.cpp Log Message: Added new methods to set the initial geodetic latitude as is needed by FlightGear. Index: FGInitialCondition.h =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/src/initialization/FGInitialCondition.h,v retrieving revision 1.46 retrieving revision 1.47 diff -C2 -r1.46 -r1.47 *** FGInitialCondition.h 3 Jul 2016 17:20:55 -0000 1.46 --- FGInitialCondition.h 28 Aug 2016 12:13:09 -0000 1.47 *************** *** 312,315 **** --- 312,322 ---- void SetLatitudeDegIC(double lat) { SetLatitudeRadIC(lat*degtorad); } + /** Sets the initial geodetic latitude. + This method modifies the geodetic altitude in order to keep the altitude + above sea level unchanged. + @param glat Initial geodetic latitude in degrees */ + void SetGeodLatitudeDegIC(double glat) + { SetGeodLatitudeRadIC(glat*degtorad); } + /** Sets the initial longitude. @param lon Initial longitude in degrees */ *************** *** 370,373 **** --- 377,385 ---- double GetLatitudeDegIC(void) const { return position.GetLatitudeDeg(); } + /** Gets the initial geodetic latitude. + @return Initial geodetic latitude in degrees */ + double GetGeodLatitudeDegIC(void) const + { return position.GetGeodLatitudeDeg(); } + /** Gets the initial longitude. @return Initial longitude in degrees */ *************** *** 593,596 **** --- 605,614 ---- void SetLatitudeRadIC(double lat); + /** Sets the initial geodetic latitude. + This method modifies the geodetic altitude in order to keep the altitude + above sea level unchanged. + @param glat Initial geodetic latitude in radians */ + void SetGeodLatitudeRadIC(double glat); + /** Sets the initial longitude. @param lon Initial longitude in radians */ *************** *** 623,626 **** --- 641,649 ---- double GetLatitudeRadIC(void) const { return position.GetLatitude(); } + /** Gets the initial geodetic latitude. + @return Initial geodetic latitude in radians */ + double GetGeodLatitudeRadIC(void) const + { return position.GetGeodLatitudeRad(); } + /** Gets the initial longitude. @return Initial longitude in radians */ Index: FGInitialCondition.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/src/initialization/FGInitialCondition.cpp,v retrieving revision 1.111 retrieving revision 1.112 diff -C2 -r1.111 -r1.112 *** FGInitialCondition.cpp 3 Jul 2016 17:20:55 -0000 1.111 --- FGInitialCondition.cpp 28 Aug 2016 12:13:09 -0000 1.112 *************** *** 740,743 **** --- 740,754 ---- //****************************************************************************** + void FGInitialCondition::SetGeodLatitudeRadIC(double geodLatitude) + { + double h = ComputeGeodAltitude(geodLatitude); + double lon = position.GetLongitude(); + + position.SetPositionGeodetic(lon, geodLatitude, h); + lastLatitudeSet = setgeod; + } + + //****************************************************************************** + void FGInitialCondition::SetLatitudeRadIC(double lat) { *************** *** 1481,1488 **** &FGInitialCondition::SetRRadpsIC, true); ! PropertyManager->Tie("ic/lat-geod-rad", &position, ! &FGLocation::GetGeodLatitudeRad); ! PropertyManager->Tie("ic/lat-geod-deg", &position, ! &FGLocation::GetGeodLatitudeDeg); PropertyManager->Tie("ic/geod-alt-ft", &position, &FGLocation::GetGeodAltitude); --- 1492,1503 ---- &FGInitialCondition::SetRRadpsIC, true); ! PropertyManager->Tie("ic/lat-geod-rad", this, ! &FGInitialCondition::GetGeodLatitudeRadIC, ! &FGInitialCondition::SetGeodLatitudeRadIC, ! true); ! PropertyManager->Tie("ic/lat-geod-deg", this, ! &FGInitialCondition::GetGeodLatitudeDegIC, ! &FGInitialCondition::SetGeodLatitudeDegIC, ! true); PropertyManager->Tie("ic/geod-alt-ft", &position, &FGLocation::GetGeodAltitude); |