The new renderer is activated by the --enable-rembrandt option, or in the preferences.xml file.
The renderer at this stage doesn't have shadows yet, and shows a lighting bug. The slash screen doesn't work too.
FGFX::init/soundfx::init use "_avionics" unconditionally, so it has to be
valid, even when avionics sound is disabled. Also allow to properly
enable/disable avioncis sound at run-time.
This way of scenery paging is really application code.
Now that the simgear stg loader is seperated from the paging
code, this appication specific paging can reside here.
May be at some time also use the spt stuff here.
- move property /sim/auto-coordination to
/controls/flight/auto-coordination
- introduce new property /controls/flight/auto-coordination-factor
with default of 0.5
- auto-coordinate the rudder if auto-coordination is true and the factor
is greater than zero
backward compatibility for the old property is temporary provided by
a temporary Nasal hack in FGDATA/Nasal/aircraft.nas
There used to be a hardcoded visibility of 1000m below which the
sky was disabled. This distance is now bound to
/sim/rendering/minimum-sky-visibility with a default value of 1000
Since d91a617423 (vectory color calculations)
all 4 elements of a color were scaled with the respective brightness.
The caused some panels to be transparent at night etc.
Before the change, only the 3 RGB elements of the colors were scaled,
while the 4th element (alpha channel?) remained unaltered.
Commit restores the alpha elements to their original behaviour.
=> "Quick hack" for 2.6.0. Need s.o. to double check the initial changes
and commit something clean to "next".
Commit 5f0066c resulted in an incorrect angle calculation. At certain view/sun
angles "hor_rotation" and "rf1" would skip from the minimum to the maximum
value).
Also, an offset angle of 90 degrees (PI/2) is added, which seems to align
the sky effect with the sun position. Calculation is probably still wrong,
but seems less wrong than before - and the flickering is gone...
- initialize uninitialized properties
- use prefix instead of postfix increments
- reduce visibility of variables
- use empty() instead of size() == 0 for vector and string
- pass string by reference, not by value
Avoid using the now deprecated readObjectModelTemplate() method
in HLAFederate. Make more use of the available general
initialization functions in HLAFederate.
This property is true if the active frequency is tuned to a
paired LOC/GS frequency in the range 108.00 - 111.95 with a
odd 100kHz digit (108.10, 108.15, 108.30, 108.35 ...)
It only indicates, that this _is_ a LOC/GS frequency,
it does _not_ provide any indication if a LOC/GS station is
actually being received.
- Add update-interval-secs to the entire autopilot
- cache min/max values in InputValue
- a little more relaxed "equals zero" checking in the NoiseSpikeFilter
- add new <update-interval-secs> for autopilot components.
This does what it says.
- add new method to PeriodicalValue to normalize symmetric around zero
- move the DigitalFilterImplementation out of the header file
- refactor NoiseSpikeFilter: spare some cpu-cycles and respect periodical
output
The property /fdm/jsbsim/propulsion/engine/prop-induced-velocity_fps
gives wrong answers, and can become NaN under certain conditions. When thrust is
negative and forward velocity is small we can take the square root of a negative
number. This could occur, for example, when using reverse thrusters on landing.
The value comes out much too high when alpha is near 180, such as taxing with a
tail wind.
Fog color became negative at certain sun angles (around midnight), which
resulted in weird sky dome coloring issues.
Hack: simply clamp the value for now.
Don't initialize the offset in the main loop but in
the init method of the implementing class. This ensures
it gets initialized if you instantiate more than one
heading-indicator and does not initialize the property for
unsused heading-indicators (no more stray heading-indicator-fg
property anymore).
MP aircraft are loaded by a separate OSG thread (introduced after FG2.4.0).
The OSG thread also calls the "modelLoaded" callback. However, we mustn't
allow the OSG thread to call FGNasalModelData::modelLoaded directly:
FGNasalModelData isn't thread-safe. There are obvious issues (_callCount++;),
tricky issues like calling the Nasal _parser_ or creating hashes and
modifying the global Nasal namespace. It doesn't use locks to protect
against another thread executing a Nasal context or running garbage
collection. It also executes Nasal code itself (the model's "load" hook),
which we also cannot allow in a separate thread...
This patch returns all Nasal parts of MP-aircraft loading (parsing,
module creation, execution) to the main thread, while keeping the
multi-threaded OSG part (loading of MP-aircraft model files itself).
The same issue exists with scenery models (see other commit).
To summarize with 2 words: It s*cks... ;-)
are the accelerations (forces) as felt from the pilot's perspective. This
combines the accelerations due to change in velocity vector and gravity.
Previosly the gravity part was right, but the body accelerations were being
transformed incorrectly. The error was very subtle and basically amounted to
the fact that inverting an axis of a vector before transforming it is not
equivalent to transforming the vector and then inverting that axis.
After this fix, pilot accelerations + gyro + gps can be fed into an external
kalman filter and it will converge properly (extra confirmation that there
was a problem and this fix corrects it.)
* Pregenerating taxiroutes could interfere with runway assignments by ATC, when conditions changed, resulting in a taxi to one runway and a takeoff from another
* A simpler solution for the "Error in Traffic record bug". This still needs some more testing, but I haven't seen any error message anymore, since changing to the current code.
* Initialize AI traffic at speed zero, this should prevent some weirdness observed under boundary conditions.
* Don't activate groundnetwork proximity detection for pushback traffic until the "ready for startup message is transmitted. this should allow sufficient time for them to reserve a route, but a little more testing still needs to be done.
Replace SG_GENERAL by more specific log classes in many places.
Allow "," to separate logging classes (using "|" is odd on the
command-line).
Also add new option to make logging more useful for developers.
You can use:
--log-level=debug --log-class=environment
to only get environment debug messages, or
--log-level=debug --log-class=sound,ai
to only get debug messages related to the sound or AI subsystem.
Untangle AI reinit and init methods. Some code in init hooks expects to be
called once only. Derived classes should not redirect their reinit to init,
even if this seems fine for the methods of the derived class itself. This
also triggers the init methods of all base classes, which may not expect
multiple calls to their init methods (or to "init" on "reinit").