ehofman [Fri, 7 May 2004 16:42:59 +0000 (16:42 +0000)]
Frederic Bouvier:
this patch introduce a new kind of animation and ssg branch.
I called them flash animation, because they help me to
enhance the look of the rotating beacon and possible future
lighthouse. It computes the cosine of the angle between an
arbitrary axis, transformed by the current modelview matrix,
and the view direction. No trig involved, just a dot/scalar
product.
The computed value can be modified by three parameters,
power, factor and offset, according to the formulae :
value = factor * pow( cosine, power ) + offset.
It is clamped between a minimum and a maximum.
This value is then used as the scale factor of a matrix
transformation applied to the children of the SGFlash
branch.
andy [Fri, 30 Apr 2004 00:44:04 +0000 (00:44 +0000)]
Changes to get SimGear to configure and compile out-of-the-box on
a MinGW target:
Link against alut.dll in addition to openal32.dll.
Remove some preprocessor defines from compiler.h that were
confusing the mingw and/or libstdc++ headers (I put the _isnan
one back in the only file it was used).
Hack a broken sleep() call into the OpenAL sample programs so
that they will compile (but not work) in a non-POSIX environment.
Change the header file ordering in sample_openal.hxx to get
around some really weird interactions between MinGW's windows.h
and the gcc iostream header.
Add support for specifying a positional offset relative to the listener.
This allows us to "place" cockpit sounds. For example, we can make left
engine sound come out of the left speaker, right engine out the right
speaker, etc.
Expose the ability to specify how the sound volume fades relative to
distance from the listener. This let's us configure "interior" cockpit
sounds versus "exterior" engine type sounds.
Rewrite the entire audio support library on top of OpenAL rather than plib's
sound manager. The interface was simplified and cleaned up a bit, and I
haven't back ported these changes to the plib sound wrappers ... we could
I suppose if someone really had a problem, but I haven't seen anything so
far that would indicate the extra effort is worth it.
gcc 3.4 has changed the rules for unqualified template name lookup. This
affects SGQueue.hxx. The changes I've made are backwards compatible with
earlier gcc versions. Everything else compiles pretty much okay except for a
few warnings. The resultant executable seems a bit faster too.
This is a new patch that allow to define a different
texture for top and bottom of clouds. It uses the
overcast_top.rgb you made for me last time.
What the patch do is to install a ssgStateSelector
instead of a ssgSimpleState for each layer.
The SGCloudLayer::draw method is modified to accept
a boolean that will select the proper state: 0/false
for bottom, 1/true for top.
Then, in SGSky::drawUpperClouds and SGSky::drawLowerClouds,
SGCloudLayer::draw is called with false and true because
we see the bottom of upper clouds and the top of
lower clouds.
Only overcast has 2 textures, the other types share the
same state for top and bottom, but that could be modified
in SGCloudLayer::rebuild.
put all leaf is a seperated branch so that it is
possible to use a pretrav callback to cull out
terrain without culling out light or dynamic
objects. It appears that plib is not calling the
pretrav callback for leaves.
add an optional parameter that would be called to
build the aircraft panel, so that flightgear's
model_panel no longer duplicate code.
add a pretrav callback to models so that we can
filter out models when calling ssgCullAndDraw on
the global scene.
sgSetModelFilter( true ) means that we want to draw
the models. Use false to cull them out.
andy [Tue, 23 Mar 2004 00:42:56 +0000 (00:42 +0000)]
Fix GC interaction. The "me" reference to a method call was being
popped off the stack in a situation where it could be garbage
collected. I believe this is the source of the spurious "non-object
have no members" bug that has been reported.
ehofman [Sat, 20 Mar 2004 22:41:40 +0000 (22:41 +0000)]
Frederic Bouvier:
The message 'Alert: catching up on tile delete queue'
comes from the fact that 48 tiles are scheduled and
added to the cache at startup before the plane location
is initialized. My proposed patch is to initialize
SGLocation with an invalid position and detect this
fact before scheduling tiles. I prefer to do that
rather than testing for lon and lat being 0,0 because
it is a valid position and someone could want to fly
near Accra.
ehofman [Sat, 20 Mar 2004 22:38:13 +0000 (22:38 +0000)]
Frederic Bouvier:
This patch is for windows only. It hides the console window
until there is a message to print. It only support SG_LOG,
that I think is the right way to display something in FG.
curt [Wed, 3 Mar 2004 21:37:41 +0000 (21:37 +0000)]
Work around a limitation of gc_calc_course_dist(). When the start and end
points are too close together, this routine can return a course of "nan"
but the distance is valid. Someday someone who understands the math should
rewrite the gc_calc_course_dist() routine so it is more robust, but for now
it's easiest to simply check for a nan result and code around the limitation.
ehofman [Tue, 2 Mar 2004 10:51:13 +0000 (10:51 +0000)]
Make it possible to define multiple texture for a material (multiple <texture> entries in the materials.xml file). The code can return a random texture, or a pre defined texture upon request (default is random)
ehofman [Mon, 23 Feb 2004 20:07:20 +0000 (20:07 +0000)]
Melchior FRANZ:
Here are some updates for the metar class:
- support for empty visibility group
- support for 4-alnum IACO ids (rather than only 4-alpha)
- better diagnosis in exception messages
- check for 404 http response
- replace last constant by constants.h definition
andy [Fri, 20 Feb 2004 15:10:49 +0000 (15:10 +0000)]
Fix from Richard Harke for 64 bit systems. The reftag was left
uninitialized by naNum(). If it happened to be constructing it on the
stack in a location previously occupied by a real reference, it would
generate a corrupt naRef.
andy [Sun, 1 Feb 2004 17:47:08 +0000 (17:47 +0000)]
Yank the MSVC special handling. It turns out it was becuase "strlen"
has special voodoo in the parser. That's much more cleanly handled by
renaming the function than by #ifdef'ing.
curt [Fri, 16 Jan 2004 17:37:05 +0000 (17:37 +0000)]
Oops, I originally had ramped the vasi/papi color transition the wrong way.
So as you passed through the target glide slope from low to high it would
be colored: red -> white -> small range of transition to red -> white.
Now it goes the right way so you get: red -> smooth transition to -> white.
You can tell you are getting high if you see the bottom vasi start to turn
pink ... etc. etc. hopefully just like in real life.
curt [Wed, 14 Jan 2004 18:02:58 +0000 (18:02 +0000)]
The emissive values just don't seem like the right thing to do. You suddenly
see the dark side of the moon quite clearly, which usually isn't the case.
The rest of the moon still seems a bit oversaturated right now ...