andy [Wed, 30 May 2007 22:49:41 +0000 (22:49 +0000)]
Sync with Nasal upstream. Mostly fixes to naContinue(), which
FlightGear doesn't use. Also includes a performance fix for the
call() builtin that should help Melchior, who was measuring lower
performance for the props.Node() interface than the getprop/setprop
API.
frohlich [Wed, 30 May 2007 13:07:05 +0000 (13:07 +0000)]
Modified Files:
simgear/scene/model/SGMaterialAnimation.cxx:
Olaf Flebbe: Use brakets around bitwise operations.
Greetings from LinuxTag, Berlin ... :)
mfranz [Mon, 7 May 2007 14:03:44 +0000 (14:03 +0000)]
Add method to return the number of attached listeners. Listeners have become
a much more important feature than they were two years or something ago, and
it's helpful for debugging and exploration to get this important node property
shown in property tree dumps or in the property browser (verbose mode).
mfranz [Sun, 6 May 2007 17:33:15 +0000 (17:33 +0000)]
- fix bug where a property tree saved with writeProperties() and read back
in with readProperties() would not look the same, because element indices
of '0' were even dropped when a node has a "secret" value *and* children
- introduce "omit-node" modifier attribute for the "include" attribute.
This inserts the given file in place of the including node, while the
node is dropped. This is desirable for multiple includes (which can't
be done by multiply using the "include" attribute, as this isn't valid
XML spec syntax)
Csaba HALASZ:
- fix bug that messed up leg distances after inserting and deleting waypoints
not at the end of the route
- move add_waypoint() and delete_waypoint from hxx to cxx
- beef up routetest
andy [Mon, 2 Apr 2007 16:14:54 +0000 (16:14 +0000)]
Use __FUNCTION__, which works on gcc and MSVC 7/8, instead of
__func__, which while standardized works only with gcc. I'll wait for
bug reports from VC6 before bothering with fallback code...
andy [Fri, 30 Mar 2007 16:42:22 +0000 (16:42 +0000)]
Melchior points out that NaN/Inf behavior is not platform-independent.
So toss a runtime error ("floating point error") when any of the math
library functions produce a non-finite value. Note that these are not
the only locations that can do that (simply dividing by zero will
produce an Inf), but it's still proper behavior.
andy [Thu, 29 Mar 2007 18:50:12 +0000 (18:50 +0000)]
Sync with Nasal CVS (soon to become Nasal 1.1). Notable new features:
Nasal now supports calls to "subcontexts" and errors can be thrown
across them, leading to complete stack traces when call() is used,
instead of the truncated ones we now see.
Vectors can now be concatenated using the ~ operator that used to work
only for strings.
Better runtime error messages in general due to a fancier
naRuntimeError() implementation
A big data size shrink on 64 bit systems; the size of a naRef dropped
by a factor of two.
"Braceless code blocks" have been added to the parser, so you can
write expressions like "if(a) b();" just like in C. Note that there's
still a parser bug in there that fails when you nest a braced block
within a braceless one.
Character constants that appear in Nasal source code can now be
literal multibyte UTF8 characters (this was always supported for
string literals, but character constants were forced to be a single
byte).
New modules: "bits", "thread", "utf8" and (gulp...) "io". The bits
library might be useful to FlightGear, the utf8 one probably not as
Plib does not support wide character text rendering. The thread
library will work fine for spawning threads to do Nasal stuff, but
obviously contact with the rest of FlightGear must be
hand-synchronized as FlightGear isn't threadsafe. The io library is
no doubt the most useful, as it exposes all the basic stdio.h
facilities; it's also frighteningly dangerous when combined with
networked code...
mfranz [Fri, 16 Feb 2007 15:32:21 +0000 (15:32 +0000)]
- don't leak node in both hash_table::bucket::erase()
- remove bad code from hash_table::bucket::erase(const char *) that was
introduced with the last patch. (This function isn't used anywhere and
is scheduled for removal. Leaving it in for now as a reference.)
- remove leaves first in remove_from_path_caches()
- cosmetics: indentation, one trailing space, variable name change, comment
(Sorrry for mixing that with actual code, but I think it's easy to see.)
mfranz [Sun, 11 Feb 2007 11:05:23 +0000 (11:05 +0000)]
Maik JUSTUS:
"""
- make every node maintain list of properties that link to it
- add functions to erase node by address from hash bucket/entry in their
path caches, so that all references can be removed
- if a node is removed, it (and all children, grandchildren, ...) calls
all linked properties to remove them from their path-cache
This fixes problems with the aerotow over multiplayer and maybe some
other problems, where nodes are queried by name.
"""
frohlich [Fri, 2 Feb 2007 18:16:42 +0000 (18:16 +0000)]
Modified Files:
ephemeris.cxx ephemeris.hxx stardata.cxx:
one must not do changes just before checkin,
one most not do changes just before checkin,
[ last message repeated 100 times ]
frohlich [Sun, 7 Jan 2007 11:52:19 +0000 (11:52 +0000)]
Modified Files:
SGSceneUserData.hxx SGPickCallback.hxx Makefile.am
Added Files:
SGSceneUserData.cxx: Cleanup and replace the pick callback with
such a list.
frohlich [Wed, 27 Dec 2006 09:23:39 +0000 (09:23 +0000)]
Modified Files:
Makefile.am SGMathTest.cxx SGQuat.hxx SGVec3.hxx
Added Files:
SGBox.hxx SGGeometry.hxx SGGeometryFwd.hxx SGGeometryTest.cxx
SGIntersect.hxx SGLineSegment.hxx SGPlane.hxx SGRay.hxx
SGSphere.hxx SGTriangle.hxx:
Small updates to the vector code, new geometry and collision
classes for use with a bv tree to speed up collission tests.
Also included is a rought unit test for the collissions.