1
0
Fork 0
Commit graph

372 commits

Author SHA1 Message Date
James Turner
1f1060431f Avoid NaNs in environment code at extreme altitude
Avoid the ‘red sky zone’ when going to higher orbital altitudes
(thousands of km).

https://sourceforge.net/p/flightgear/codetickets/2087/
2018-12-04 09:39:36 +01:00
James Turner
2d348bd641 Change CAVOK visibility to 9999.0 metres
This should trigger automatic computation by AW.
2018-09-29 12:47:29 +01:00
James Turner
26bc3713b5 Changes for SimGear subsystem add/remove tracking
Since the subsystem manager tracks group state, it now binds/inits
automatically. This means groups which create subsystems during init
no longer need to manually bind() them.
2018-08-12 11:18:50 -07:00
Edward d'Auvergne
feb854946e TestSuite: Complete removal of FG_TESTLIB. 2018-07-26 15:52:07 +02:00
Richard Harrison
2c8aad12ba Model relative property tree root binding.
Change fgcommand to take an optional property tree root element.

This fixes the animation bindings to use the defined property tree root - to support multiplayer (or other) model that can bind to the correct part of the property tree.

Requires a corresponding fix in sg to allow the command methods to take an optional root parameter.

What this means is that when inside someone else's multiplayer model (e.g. backseat, or co-pilot), the multipalyer (AI) model will correctly modify properties inside the correct part of the property tree inside (/ai), rather than modifying the properties inside the same part of the tree as the non-ai model.

This means that a properly setup model will operate within it's own space in the property tree; and permit more generic multiplayer code to be written.

This is probably responsible for some of the pollution of the root property tree with MP aircraft properties.
2017-07-05 11:37:17 +02:00
Edward d'Auvergne
d2a6eb69a5 Clean up of the Ephemeris class members, removing the raw pointers.
The property nodes have been switched to SGPropertyNode_ptr and _impl to std::unique_ptr.
2017-05-30 09:57:37 +02:00
Edward d'Auvergne
a0dc7b5ba3 Untied the /environment/moonlight property. 2017-05-29 09:47:31 +02:00
Florent Rougon
33c54e5d76 Fix crash in PT_vs_hpt() due to invalid data in ISA_def
In commit 15525aab58, a layer with
lapse=0.0 was added to ISA_def (atmosphere model). However, the last
layer *must* have lapse == -1.0, otherwise the code in PT_vs_hpt()
doesn't know when it's on the last element of ISA_def, and does an
illegal memory access with (pp+1)->height. This is why -1.0 is the
default value for lapse ('l') in the ISA_layer constructor.

Fix: add the -1.0 terminator to the last element of ISA_def.
2017-05-10 16:54:55 +02:00
James Turner
9e122eaf81 Partial testing framework.
Compile a useful subset of FG as a shared library, and add two basic
uses of this to exercise some Flightplan / RoutePath / navaid
functions.

The test framework can/will be expanded incrementally from here, this
is just a starting point.
2017-03-25 15:35:26 +00:00
James Turner
b13dd05aca Fix bug on Windows, time() is UTC there also.
This renders sgGMTime obsolete, it will go away shortly. Thanks to 
Ron H for help tracking this down and Richard Harrison for his
knowledge of Windows APIs in confirming the issue.
2017-03-16 21:26:43 +00:00
Torsten Dreyer
994ea1674b replace many auto_ptr by unique_ptr 2016-11-14 22:20:46 +01:00
Edward d'Auvergne
b574728411 Ephemeris: Exposure of the moon's absolute attributes in the property tree.
This includes the moon's absolute position, age and phase.  For this, the new
simgear MoonPos::get*() functions are tied to the property tree at
"/ephemeris/moon/" using a new tieMoonPos() function.

In addition the moon illumination factor is exposed by tying the simgear
MoonPos::getIlluminanceFactor() function to the /environment/moonlight property.
This is a number ranging between 0 and 1 based on the log of the illuminance of
the moon outside the atmosphere.  It is calculated as

    factor = (log(I) - max_loglux) / (max_loglux - min_loglux) + 1.0,

The illuminance of the moon outside the atmosphere, I, is from equation 20 from:

   Krisciunas K. and Schaefer B.E. (1991). A model of the brightness of
moonlight, Publ. Astron.  Soc. Pacif. 103(667), 1033-1039 (DOI:
http://dx.doi.org/10.1086/132921).

For more background, see
http://forum.flightgear.org/viewtopic.php?f=47&t=28201&start=60#p270516 .
2016-11-08 11:16:24 +01:00
Alessandro Menti
2d86fc11ad Replace the NOAA METAR URL with the new, updated one 2016-08-04 20:34:34 +02:00
Erik Hofman
9ec4d7749f Add support for AeonWave 2016-08-04 18:43:10 +02:00
James Turner
6d0c2070fd Use future-proof SGPath APIs.
Remove uses of .str(), .c_str() and some other methods of SGPath.
Pass SGPath directly where possible, or explicitly convert to the
appropriate 8-bit encoding.
2016-06-28 10:08:38 +01:00
Edward d'Auvergne
977ec5063f Shift of management of the precipitation OSG scene graph to the scenery manager.
The precipitation branch of the OSG scene graph is now centrally managed by the
scenery manager rather the precipitation manager itself.  The scene graph
initialisation from the constructor has also been shifted into the new
FGPrecipitationMgr::sceneGraphSetup() function.
2016-05-03 18:44:46 +02:00
James Turner
733e3b3f0c HTTP subsystem has a default name.
Switch to using type-safe accessors now.
2016-03-24 15:08:38 +00:00
James Turner
ba56c42eb4 Pull Ephemeris out of FGGlobals 2015-12-31 15:19:51 -06:00
Torsten Dreyer
2b66cf3484 Remove unused code 2015-12-22 11:41:56 +01:00
Rebecca N. Palmer
9745a6fce3 remove obsolete comments
see 1cd070de8c
2015-04-09 19:05:22 +01:00
Torsten Dreyer
7b62f6ce2f Catch exception by reference, not by value 2015-04-07 12:11:15 +02:00
Torsten Dreyer
1cd070de8c Better fix for NoaaMetarGetRequest::onDone
Keep a reference to the LiveMetarProperties while the HTTP request is active
Also, drop the MetarDataHandler which was unneeded overhead
2015-04-07 11:59:07 +02:00
Rebecca N. Palmer
235693c1c4 Don't free METAR objects, it makes NoaaMetarGetRequest::onDone crash 2015-04-04 14:32:58 +01:00
Torsten Dreyer
a56694f962 Make command "request-metar" also work
same problem as previous commit :-/
2015-03-30 17:11:47 +02:00
Torsten Dreyer
8baf72aabd Make command "clear-metar" work
Didn't work if the client used a non-expanded property path
(like the airport dialog)
2015-03-30 16:13:01 +02:00
James Turner
f2d6b76b13 Portability: Fix compile errors on MSVC (cmath)
From Scott (xDraconian)
2015-03-24 11:11:42 -05:00
James Turner
cee943076c Fix clang warning: unused constant. 2015-03-18 20:34:05 +01:00
Torsten Dreyer
4289c0aacd MetarProperties: don't double-trigger listeners on invalidate 2015-03-11 22:24:07 +01:00
Torsten Dreyer
4564dbd95e Live weather: ensure valid flag is set correctly 2015-03-09 12:24:36 +01:00
Torsten Dreyer
06e8fe747f Precipitation updates from ThorstenR
required SimGear commit 75271c44a82ae0fb1ff9c91e93a12fa8b10099fd

Since the consensus seems to be that the precipitation clipping issue is with the panel code, attached is  my proposed update for the precipitation system in SG and FG

* without corresponding control structures in FGData it falls back to default, except I have fixed an inconsistency in freezing behavior - previously rain changed suddenly to snow when the temperature dropped below zero, but the reverse transition was dragged out and gave odd visible motion with the wind as snow gradually changed back to rain with the particle speed not well defined. Now both transitions are sudden. And I see no more particles flow against the wind

* with

 <!-- definitions for the detailed precipitation manager -->
 <precipitation-control>
     <rain-droplet-size type="float" userarchive="n">0.015</rain-droplet-size>
     <snow-flake-size type="float" userarchive="n">0.03</snow-flake-size>
     <detailed-precipitation type="bool" userarchive="n">false</detailed-precipitation>
     <illumination type="float" userarchive="n">1.0</illumination>
     <clip-distance type="float" userarchive="n">5.0</clip-distance>
  </precipitation-control>

added to Environment/environment.xml, the new system allows to switch more detailed management on. This provides

* explicit setting of rain droplet size and snow flake size by the weather system

* automatic sqrt(r) scaling of the vertical speed of raindrops

* automatic transition to snow when freezing for small droplets but hail for large droplet sizes (looks like snow, but has different particle dynamics)

* an illumination scaling factor to dim the precipitating based on the light we have in the scene (I still need to devise a property rule to set this automatically)

The clip distance is also exposed now and considered at startup of the system - might be useful for e.g. airships when the gas bag provides rain cover (?)   or to be simply off for open airplanes
2014-10-21 10:47:32 +02:00
Torsten Dreyer
15525aab58 add atmosphere layer 8 for space exploration
as provided by Ron Jensen
2014-04-22 09:20:25 +02:00
Torsten Dreyer
dd6cccdda1 A new comm radio and atis implementation 2014-02-28 11:45:49 +01:00
Torsten Dreyer
c152e7f118 Bind the CAVOK flag to metarproperties 2014-02-25 09:42:00 +01:00
James Turner
99fd9513d9 Metar: finalise-position fast if Metar fails
- when METAR lookup fails (as opposed to timing out), report
this immediately so finalise-position doesn't wait.
2014-02-24 19:43:21 +00:00
Torsten Dreyer
16869d0362 publish the metar date/time to metarproperties 2014-02-21 16:23:10 +01:00
James Turner
580a7f07dd Fix METAR-download bug on Windows.
https://code.google.com/p/flightgear-bugs/issues/detail?id=1207

Use the new (in SimGear) sgGMTime helper when comparing METAR age.
This prevents users in time-zones 4 or more hours ahead of GMT from
being unable to use METAR reports.
2014-01-01 21:05:29 +00:00
James Turner
24c1129140 Bugfix: avoid sky colour errors when vis < 1000m
(needs the accompanying Simgear change in SGSky)
2013-12-19 17:18:09 +00:00
James Turner
4dcd96c4af Remove dependency on command-mgr singleton
Use explicit instance (from globals)
2013-11-25 09:14:46 +00:00
James Turner
0191b597e7 Environment manager: use aircraft_pos helper 2013-11-16 12:28:51 +00:00
James Turner
4a3b8c5765 Reset: changes for SGSubsystem ownership.
Keep in sync with updated ownership model in subsystem groups.
2013-11-12 23:36:18 +00:00
James Turner
0751556aab Reset: remove commands 2013-11-12 22:47:46 +00:00
James Turner
75a01aa588 Reset: ensure Wx controller destroys cleanly. 2013-10-29 23:01:29 +00:00
Thomas Geymayer
8a582e6376 Update/refactor for simgear HTTP changes. 2013-10-27 19:39:22 +01:00
James Turner
9457ba024a Fix for #1117:
fix another issue similar to CVE-2012-2090
 In FGClouds::buildlayer(), prevent passing '%n' to snprintf().
From: Rebecca Palmer
2013-09-14 17:43:24 +01:00
James Turner
6acf1c12fc Fix unused private vars.
Xcode is warning about these, they're a mixture of
copy-pasted code, evolved use (e.g. using a property
node to store state), and so on.
2013-07-04 20:24:56 +01:00
James Turner
1a4993f08b Minor cleanup of cloud commands. 2013-03-27 22:48:47 +00:00
James Turner
eb53f3c919 Fix missing include for Linux. 2013-03-17 14:07:07 +00:00
James Turner
c6221b2c84 Fix max-metar-age, bug #1076.
Will merge to 2.10 branch once verified.
2013-03-17 13:14:08 +00:00
James Turner
1eb8ae1fbf Give the FGAirport class a sane filename.
simple.[cxx|hxx] -> airport.[cxx|hxx]
2013-02-21 11:32:02 +00:00
Christian Schmitt
2013f7149d Some headers missing... ;) 2013-02-07 19:00:54 +01:00