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);
|
||||
}
|
||||
#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 )
|
||||
|
@ -695,9 +543,6 @@ bool fgCockpitInit( fgAIRCRAFT *cur_aircraft )
|
|||
fgHUDInit( cur_aircraft );
|
||||
ac_cockpit = new fg_Cockpit();
|
||||
|
||||
// Have to set the LatLon display type
|
||||
fgLatLonFormat = toDM;
|
||||
|
||||
SG_LOG( SG_COCKPIT, SG_INFO,
|
||||
" Code " << ac_cockpit->code() << " Status "
|
||||
<< ac_cockpit->status() );
|
||||
|
|
|
@ -54,7 +54,6 @@
|
|||
//#include <Autopilot/xmlauto.hxx>
|
||||
#include <GUI/new_gui.hxx> // FGFontCache
|
||||
#include <Main/globals.hxx>
|
||||
#include <Main/fg_props.hxx>
|
||||
#include <Scenery/scenery.hxx>
|
||||
|
||||
#include "hud.hxx"
|
||||
|
|
|
@ -52,13 +52,13 @@
|
|||
|
||||
#include <simgear/math/fastmath.hxx> // float_to_int()
|
||||
#include <simgear/constants.h>
|
||||
#include <simgear/props/props.hxx>
|
||||
|
||||
#include <Include/fg_typedefs.h>
|
||||
#include <Aircraft/aircraft.hxx>
|
||||
#include <Aircraft/controls.hxx>
|
||||
#include <FDM/flight.hxx>
|
||||
#include <GUI/gui.h>
|
||||
#include <Main/fg_props.hxx>
|
||||
#include <Main/globals.hxx>
|
||||
#include <Main/viewmgr.hxx>
|
||||
#include <Airports/runways.hxx>
|
||||
|
@ -541,6 +541,8 @@ private:
|
|||
bool lat;
|
||||
bool lon;
|
||||
bool lbox;
|
||||
SGPropertyNode_ptr lon_node;
|
||||
SGPropertyNode_ptr lat_node;
|
||||
|
||||
public:
|
||||
instr_label(const SGPropertyNode *);
|
||||
|
|
|
@ -3,8 +3,6 @@
|
|||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <Main/fg_props.hxx>
|
||||
|
||||
#include "hud.hxx"
|
||||
|
||||
#ifdef USE_HUD_TextList
|
||||
|
@ -33,7 +31,9 @@ instr_label::instr_label(const SGPropertyNode *node) :
|
|||
blink(node->getIntValue("blinking")),
|
||||
lat(node->getBoolValue("latitude", 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 "
|
||||
<< node->getStringValue("name", "[unnamed]"));
|
||||
|
@ -86,9 +86,9 @@ void instr_label::draw(void)
|
|||
|
||||
if (data_available()) {
|
||||
if (lat)
|
||||
sprintf(label_buffer, format_buffer, coord_format_lat(get_value()));
|
||||
snprintf(label_buffer, 80, format_buffer, lat_node->getStringValue());
|
||||
else if (lon)
|
||||
sprintf(label_buffer, format_buffer, coord_format_lon(get_value()));
|
||||
snprintf(label_buffer, 80, format_buffer, lon_node->getStringValue());
|
||||
else {
|
||||
if (lbox) {// Box for label
|
||||
float x = scrn_rect.left;
|
||||
|
|
|
@ -25,7 +25,6 @@
|
|||
#include "hud.hxx"
|
||||
|
||||
#include <math.h>
|
||||
#include <Main/fg_props.hxx>
|
||||
#include <Main/globals.hxx>
|
||||
#include <Scenery/scenery.hxx>
|
||||
#include <Aircraft/aircraft.hxx>
|
||||
|
|
Loading…
Reference in a new issue