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:
parent
e2deb397a9
commit
fb1b1d98d3
5 changed files with 8 additions and 163 deletions
|
@ -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() );
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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 *);
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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>
|
||||||
|
|
Loading…
Reference in a new issue