1
0
Fork 0

remove lon/lat string representation generating functions; this is now

done in Main/fg_props.cxx and available via /position/{long,lat}itude-string
This commit is contained in:
mfranz 2006-06-17 16:40:51 +00:00
parent e2deb397a9
commit fb1b1d98d3
5 changed files with 8 additions and 163 deletions

View file

@ -522,158 +522,6 @@ float get_aux18 (void)
return fdm->get_faux(10); return fdm->get_faux(10);
} }
#endif #endif
// $$$ end - added, VS Renganathan 13 Oct 2K
#ifdef NOT_USED
/****************************************************************************/
/* Convert degrees to dd mm'ss.s" (DMS-Format) */
/****************************************************************************/
char *dmshh_format(double degrees)
{
static char buf[16];
int deg_part;
int min_part;
double sec_part;
if (degrees < 0)
degrees = -degrees;
deg_part = degrees;
min_part = 60.0 * (degrees - deg_part);
sec_part = 3600.0 * (degrees - deg_part - min_part / 60.0);
/* Round off hundredths */
if (sec_part + 0.005 >= 60.0)
sec_part -= 60.0, min_part += 1;
if (min_part >= 60)
min_part -= 60, deg_part += 1;
sprintf(buf,"%02d*%02d %05.2f",deg_part,min_part,sec_part);
return buf;
}
#endif // 0
/************************************************************************
Convert degrees to dd mm.mmm' (DMM-Format)
Description: Converts using a round-off factor tailored to the required
precision of the minutes field (three decimal places). Round-off
prevents function from returning a minutes value of 60.
Input arguments: Coordinate value in decimal degrees
************************************************************************/
static char *toDM(float dd)
{
static char dm[16];
double tempdd;
double mn;
double sign = 1;
int deg;
if (dd < 0)
sign = -1;
/* round for minutes expressed to three decimal places */
tempdd = fabs(dd) + (5.0E-4 / 60.0);
deg = (int)tempdd;
mn = fabs( (tempdd - (double)(deg)) * 60.0 - 4.999E-4 );
deg *= (int)sign;
sprintf(dm, "%d*%06.3f", deg, mn);
return dm;
}
/************************************************************************
Convert degrees to dd mm'ss.s'' (DMS-Format)
Description: Converts using a round-off factor tailored to the required
precision of the seconds field (one decimal place). Round-off
prevents function from returning a seconds value of 60.
Input arguments: Coordinate value in decimal degrees
************************************************************************/
static char *toDMS(float dd)
{
static char dms[16];
double tempdd, tempmin;
int deg;
int mn;
double sec;
double sign = 1;
if (dd < 0)
sign = -1;
/* round up for seconds expressed to one decimal place */
tempdd = fabs(dd) + (0.05 / 3600.0);
deg = (int)tempdd;
tempmin = (tempdd - (double)(deg)) * 60.0;
mn = (int)tempmin;
sec = fabs( (tempmin - (double)(mn)) * 60.0 - 0.049 );
deg *= (int)sign;
sprintf(dms, "%d*%02d %04.1f", deg, mn, sec);
return dms;
}
// Have to set the LatLon display type
//static char *(*fgLatLonFormat)(float) = toDM;
static char *(*fgLatLonFormat)(float);
char *coord_format_lat(float latitude)
{
static char buf[16];
sprintf(buf,"%s%c",
// dmshh_format(latitude),
// toDMS(latitude),
// toDM(latitude),
fgLatLonFormat(latitude),
latitude > 0 ? 'N' : 'S');
return buf;
}
char *coord_format_lon(float longitude)
{
static char buf[80];
sprintf(buf,"%s%c",
// dmshh_format(longitude),
// toDMS(longitude),
// toDM(longitude),
fgLatLonFormat(longitude),
longitude > 0 ? 'E' : 'W');
return buf;
}
void fgLatLonFormatToggle( puObject *)
{
static bool toggle = false;
if ( toggle )
fgLatLonFormat = toDM;
else
fgLatLonFormat = toDMS;
toggle = !toggle;
}
#ifdef NOT_USED
char *coord_format_latlon(double latitude, double longitude)
{
static char buf[1024];
sprintf(buf,"%s%c %s%c",
dmshh_format(latitude),
latitude > 0 ? 'N' : 'S',
dmshh_format(longitude),
longitude > 0 ? 'E' : 'W');
return buf;
}
#endif
bool fgCockpitInit( fgAIRCRAFT *cur_aircraft ) bool fgCockpitInit( fgAIRCRAFT *cur_aircraft )
@ -695,9 +543,6 @@ bool fgCockpitInit( fgAIRCRAFT *cur_aircraft )
fgHUDInit( cur_aircraft ); fgHUDInit( cur_aircraft );
ac_cockpit = new fg_Cockpit(); ac_cockpit = new fg_Cockpit();
// Have to set the LatLon display type
fgLatLonFormat = toDM;
SG_LOG( SG_COCKPIT, SG_INFO, SG_LOG( SG_COCKPIT, SG_INFO,
" Code " << ac_cockpit->code() << " Status " " Code " << ac_cockpit->code() << " Status "
<< ac_cockpit->status() ); << ac_cockpit->status() );

View file

@ -54,7 +54,6 @@
//#include <Autopilot/xmlauto.hxx> //#include <Autopilot/xmlauto.hxx>
#include <GUI/new_gui.hxx> // FGFontCache #include <GUI/new_gui.hxx> // FGFontCache
#include <Main/globals.hxx> #include <Main/globals.hxx>
#include <Main/fg_props.hxx>
#include <Scenery/scenery.hxx> #include <Scenery/scenery.hxx>
#include "hud.hxx" #include "hud.hxx"

View file

@ -52,13 +52,13 @@
#include <simgear/math/fastmath.hxx> // float_to_int() #include <simgear/math/fastmath.hxx> // float_to_int()
#include <simgear/constants.h> #include <simgear/constants.h>
#include <simgear/props/props.hxx>
#include <Include/fg_typedefs.h> #include <Include/fg_typedefs.h>
#include <Aircraft/aircraft.hxx> #include <Aircraft/aircraft.hxx>
#include <Aircraft/controls.hxx> #include <Aircraft/controls.hxx>
#include <FDM/flight.hxx> #include <FDM/flight.hxx>
#include <GUI/gui.h> #include <GUI/gui.h>
#include <Main/fg_props.hxx>
#include <Main/globals.hxx> #include <Main/globals.hxx>
#include <Main/viewmgr.hxx> #include <Main/viewmgr.hxx>
#include <Airports/runways.hxx> #include <Airports/runways.hxx>
@ -541,6 +541,8 @@ private:
bool lat; bool lat;
bool lon; bool lon;
bool lbox; bool lbox;
SGPropertyNode_ptr lon_node;
SGPropertyNode_ptr lat_node;
public: public:
instr_label(const SGPropertyNode *); instr_label(const SGPropertyNode *);

View file

@ -3,8 +3,6 @@
# include <config.h> # include <config.h>
#endif #endif
#include <Main/fg_props.hxx>
#include "hud.hxx" #include "hud.hxx"
#ifdef USE_HUD_TextList #ifdef USE_HUD_TextList
@ -33,7 +31,9 @@ instr_label::instr_label(const SGPropertyNode *node) :
blink(node->getIntValue("blinking")), blink(node->getIntValue("blinking")),
lat(node->getBoolValue("latitude", false)), lat(node->getBoolValue("latitude", false)),
lon(node->getBoolValue("longitude", false)), lon(node->getBoolValue("longitude", false)),
lbox(node->getBoolValue("label_box", false)) lbox(node->getBoolValue("label_box", false)),
lon_node(fgGetNode("/position/longitude-string", true)),
lat_node(fgGetNode("/position/latitude-string", true))
{ {
SG_LOG(SG_INPUT, SG_INFO, "Done reading instr_label instrument " SG_LOG(SG_INPUT, SG_INFO, "Done reading instr_label instrument "
<< node->getStringValue("name", "[unnamed]")); << node->getStringValue("name", "[unnamed]"));
@ -86,9 +86,9 @@ void instr_label::draw(void)
if (data_available()) { if (data_available()) {
if (lat) if (lat)
sprintf(label_buffer, format_buffer, coord_format_lat(get_value())); snprintf(label_buffer, 80, format_buffer, lat_node->getStringValue());
else if (lon) else if (lon)
sprintf(label_buffer, format_buffer, coord_format_lon(get_value())); snprintf(label_buffer, 80, format_buffer, lon_node->getStringValue());
else { else {
if (lbox) {// Box for label if (lbox) {// Box for label
float x = scrn_rect.left; float x = scrn_rect.left;

View file

@ -25,7 +25,6 @@
#include "hud.hxx" #include "hud.hxx"
#include <math.h> #include <math.h>
#include <Main/fg_props.hxx>
#include <Main/globals.hxx> #include <Main/globals.hxx>
#include <Scenery/scenery.hxx> #include <Scenery/scenery.hxx>
#include <Aircraft/aircraft.hxx> #include <Aircraft/aircraft.hxx>