As can be seen in do_property_scale()'s definition in
flightgear/src/Main/fg_commands.cxx, property-scale rightfully uses a
default factor of 1.0. However, if a joystick axis' property-scale
binding has no 'factor' node defined, and one opens the joystick
configuration dialog, then PropertyScaleAxis.parse() creates an empty
'factor' node that implicitely gets a value of 0. This method is called
by joystick.readConfig() when the joystick-config dialog is opened. This
has the effect of rendering the corresponding joystick axis inoperant.
How to reproduce the bug:
- take a joystick such as the SAITEK CYBORG 3D USB, with its default
binding file from
fgdata/Input/Joysticks/Saitek/Cyborg-Gold-3d-USB.xml (this file uses
property-scale for the aileron, with no explicitely defined factor);
- start FlightGear; move the joystick left or right while looking at
the plane wings -> the ailerons move, it works fine;
- now, open the joystick-config dialog and do the same test -> the
ailerons don't move anymore and the 'Aileron' value at the bottom of
the dialog stays at 0 (0.0 or -0.0...). Just opening the dialog to
test the joystick has "corrupted" its setup! This is very confusing
for users.
This fix corrects the problem by avoiding the apparently unneeded
creation of an empty 'factor' node when there is none inside the
<binding>. An alternative would be to create a 'factor' node with value
1.0. In any case, if someone later expands the joystick-config dialog to
allow modification of property-scale's factor, he should make sure to
use a default value of 1.0!
I created a substantial quantity of new work in the New Regional
Textures project and I would like to ask if anyone could review and
perhaps commit them into FGDATA. The modifications are:
- New textures and material definitions for California
- New textures and material definitions for Mexico
- New material definitions for Central America
- New textures and material definitions for Southern Europe
(Mediterranean region: Portugal, Spain, south of Italy, Greece, coast of
Balkans)
- New airport grass texture (global)
- New airport grass texture for Latin America
- New American town texture (global)
- Small improvement to grass blade textures (to better fit the airport
grass texture)
If this will be committed, we must add a note thanking the United States
Geological Survey (USGS) for the satellite images of California (
http://www.usgs.gov/ ) to the Thanks file.
I created a substantial quantity of new work in the New Regional
Textures project and I would like to ask if anyone could review and
perhaps commit them into FGDATA. The modifications are:
- New textures and material definitions for California
- New textures and material definitions for Mexico
- New material definitions for Central America
- New textures and material definitions for Southern Europe
(Mediterranean region: Portugal, Spain, south of Italy, Greece, coast of
Balkans)
- New airport grass texture (global)
- New airport grass texture for Latin America
- New American town texture (global)
- Small improvement to grass blade textures (to better fit the airport
grass texture)
If this will be committed, we must add a note thanking the United States
Geological Survey (USGS) for the satellite images of California (
http://www.usgs.gov/ ) to the Thanks file.
- Fix documentation for --aircraft-dir: the specified path is
interpreted relatively to the current directory, not to the path of
the fgfs executable.
- Add a few precisions (the option bypasses the <path-cache> from
autosave_X_Y.xml, as well as --fg-aircraft and FG_AIRCRAFT).
- Show the option documentation in 'fgfs --help -v' output (it was
"hidden" since 2010, but it works very well; cf.
<https://sourceforge.net/p/flightgear/mailman/message/34494887/> for
the most recent discussion about this option).
- Show the doc for --aircraft-dir right below that of --aircraft (both
being closely related).
- Add a pointer to --aircraft-dir in --fg-aircraft's doc, since the
former can be used as an alternative to the latter (or at least a
complement, since --fg-aircraft is used to determine some
permissions).
Magnetic declination being "the direction of the horizontal component of
the magnetic field measured clockwise from north" according to
MagneticField(1), it must be substracted, not added, from true bearings
in order to obtain the corresponding magnetic bearings.
Example illustrating the bug:
Start at KSFO, open Equipment -> GPS Settings, enter KHTH as the
destination and click on "Search". Before the bug fix, the dialog
gives a bearing of 85, whereas the correct magnetic bearing is 58.
Digging a bit further, the true bearings/azimuths for the shortest
path (geodesic line) from KSFO to KHTH are approx. 71.5 at KSFO and
73.8 at KHTH. This can be verified with two independent libraries
(GeographicLib and PROJ.4):
% echo "37d37'08N 122d22'30W 38d32'45N 118d38'00W" | \
GeodSolve -i
71.44943076 73.75785283 343987.398
% echo "37d37'08N 122d22'30W 38d32'45N 118d38'00W" | \
geod +ellps=WGS84 -I -f '%0.3f'
71.449 -106.242 343987.398
(-106.242 + 180 = 73.758: -106.242 is the "back azimuth" at KHTH for
this path)
The bearing of 85 given by the code in gui/dialogs/gps.xml before
this commit is indeed 71.5 + magnetic declination at the starting
point (KSFO), whereas it should be 71.5 - magnetic declination.
Another, more experimental way:
Start FlightGear with:
fgfs --aircraft=ufo --disable-real-weather-fetch \
'--metar=KSFO 070956Z 36000KT 10SM FEW023 11/07 A2977 RMK AO2 SLP080 T01060067' \
--lat=37.61867421 --lon=-122.37500761 --heading=71.45931
(just in case wind influences the ufo, I have no idea whether this is
the case or not...)
During your flight, progressively increase your heading (as seen in
the HUD, i.e., true heading) so that it smoothly changes from 71.5 at
KSFO to 73.8 at KHTH. You should arrive pretty close to KHTH, whereas
the initial heading of 85 given by the GPS Settings dialog is way too
high, be it interpreted as a magnetic heading (which was visibly the
intention---it would be nice to write that in the dialog BTW) or as a
true heading (in which case the result is even further from the
correct value).
- Small update to the main hydrodynamics system.
- Added initial versions of two systems for modelling hydrodynamic planing.
Signed-off-by: Anders Gidenstam <anders@gidenstam.org>
I did quite a lot of work on textures and materials lately and I'd like
to ask if someone could please take a look on it and maybe commit it to
FGDATA if judged positively.
Starting with commit 0da71d2288836df05548f5f343fe3977ebb2955f of my
repository (see
https://github.com/gilbertohasnofb/new-regional-textures/commits/master
) I did:
- improved urban effect for the Latin American city texture
- improved the Mediterranean city texture (and also better urban effect)
- created new textures for asphalt and concrete runways
- created a new industrial texture (as well as winter version and urban
effect)
- created winter versions for European 18th century city and town textures
- applied urban effect to European 18th century city and town textures
- created a new material in which small areas around 80 large cities
around the world in which the street lights have higher density (1000
for mega cities such as NY and Tokyo, 2000 for large cities such as
Munich and Dubai, while keeping the default 10000 for all the rest of
the globe)
I also created a texture with skid marks for Thorsten's new effect, but
we are still working on this one and this may not even be used.
Everything else is ready to go.
I know this is a lot of things to test, and as Thorsten pointed out in
the forum I it would be better if next time I submit my work in several
chunks (which makes testing easier). So I could break this new work like
that if necessary, but here is a reasonable plan for anyone willing to
test it as it is now:
- start at LIRN at noon during summer. Check the new asphalt runway.
Take off fly around the city centre (it's just in front of the airport).
Test the improved European 18th century city and town textures, as well
as the new industrial texture. Change the environment to winter and
check these three textures once again.
- start at KLAX at noon. Check the new concrete runway. Take off, change
the time to midnight and check the street lights (Los Angeles is a "mega
city" so should be very bright).
- start at SBRJ at noon and check the improved Latin American city
texture. Take off, change the time to midnight and check the street
lights (Rio de Janeiro is a "large city" so should be quite bright).
- start at DTTG @ runway 06 and check the town by the left of the
airport for the improved Mediterranean city texture.
Also, there are plenty of screenshots of this work starting with this
post here: http://forum.flightgear.org/viewtopic.php?f=5&t=26031&start=150#p261282