1
0
Fork 0
Commit graph

54 commits

Author SHA1 Message Date
bcoconni
2122e9eee3 Save a memory allocation each time a property node is wrapped in Nasal. Instead use a direct access to the reference counter and explicitely delete the node if the ref counter is decremented to zero during the ghost destruction. 2014-11-23 14:53:54 +01:00
Thomas Geymayer
88b7d4f530 Update for SGPropertyNode changes. 2014-03-06 00:41:41 +01:00
Thomas Geymayer
fcc6d3edc2 Expose SGPropertyNode::removeAllChildren() to Nasal. 2013-12-07 13:47:10 +01:00
Thomas Geymayer
5146868bfb Extend Nasal property methods to support relative paths.
All methods exposed to the Nasal props module now accept an
optional first parameter refering to another node by a relative
path.

(Thanks to Philosopher for the initial patch)
2013-04-14 11:19:03 +02:00
Thomas Geymayer
863cd6a290 Canvas/Nasal and Nasal/C++ binding experiments 2012-11-15 12:43:34 +01:00
ThorstenB
1d99401c04 Remove osg dependency for isNaN only. 2012-11-11 17:22:42 +01:00
Thomas Geymayer
79f7907a82 Let Nasal props.Node.removeChildren behaviour consistent (Don't keep deleted nodes) 2012-10-22 17:59:19 +02:00
Thomas Geymayer
b22ede2fd5 Expose SGPropertyNode::addChildren to Nasal 2012-10-14 17:39:53 +02:00
ThorstenB
076bbb8487 Fix some compiler warnings.
Unused vars, loss of precision, bool type conversions.
2012-10-13 17:59:47 +02:00
Thomas Geymayer
78b5dfb58b Expose SGPropertyNode::addChild to Nasal 2012-10-13 15:13:56 +02:00
James Turner
688d76613e Expose SGCondition as a ghost to Nasal directly. 2012-08-19 21:13:31 +01:00
Markus Pargmann
ecfbb951ae Remove most compile warnings 2012-07-26 11:10:27 +01:00
Frederic Bouvier
75fc136931 Remove redundant inclusion of math/SGMath.hxx 2012-05-05 11:20:04 +02:00
ThorstenB
c808376927 Use separate header file for vector properties.
(We could drop the "SGMath.hxx" include in many places now...)
2012-05-05 00:12:41 +02:00
ThorstenB
e82c36d76b #587: don't crash on negative sizes
(see simgear commit)
2012-01-09 20:29:51 +01:00
ThorstenB
d47342a5a4 Add --log-class option, improve logging classes.
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.
2011-12-11 14:06:17 +01:00
ThorstenB
88f7c05274 Introduce "PRESERVE" flag to protect properties on sim reset.
Some specific properties need protection and shouldn't be restored to their
original values on sim-reset.
2011-06-12 20:31:56 +02:00
James Turner
664817b0a7 Make the Nasal NaN check less aggressive - still SG_ALERT, but return nil instead of terminating the Nasal script completely. 2011-01-14 20:04:20 +00:00
James Turner
ce2a112639 When attempting to pass a NaN between Nasal and property nodes, catch this. 2010-12-28 11:58:03 +00:00
Tim Moore
2c6cfca38b Fixes for changes in simgear/math/sg_types.hxx 2009-10-18 12:16:54 +02:00
Tim Moore
5b29cd4cc0 fix warnings in Multiplayer, Scripting, and Time 2009-08-24 18:07:19 +02:00
Tim Moore
7d6c567fde Refer to property types using props:: namespace
BOOL, FLOAT etc. conflict with typedefs in windows.h.
2009-07-17 14:54:12 +02:00
timoore
5cf18d30c6 Support for VEC3D and VEC4D properties.
Tiny update to property_list for extended properties.

New property types in nasal.
2009-07-16 12:10:47 +02:00
timoore
4cc3084256 SGPropertyNode::Type moves to simgear::props namespace 2009-07-16 12:10:47 +02:00
mfranz
f3ba7a3bd4 - pass return values in set{,Bool,Int,Double}Value() and setprop()
- make some char* "const" to silence warnings

This removes the warning that (rarely) occurred if one wrote to a
write protected property with setprop(). While this was a useful
hint, it needlessly floods the terminal if one protected a property
intentionally. (Consider to add an SG_DEBUG warning instead.) It's
now the caller's job to check for the result if it actually cares.
2009-02-10 00:22:16 +01:00
mfranz
98b3701655 add _getAliasTarget(): this dereferences an alias, allowing to refer
to the target node's children and attributes etc., which aren't
inherited by an alias.
2008-11-26 11:34:35 +00:00
mfranz
845196800b f_alias: catch SGPropertyNode exceptions and generate runtime error 2008-11-13 23:47:45 +00:00
mfranz
b4d6485cfc add alias() and unalias() functions 2008-11-12 14:39:08 +00:00
andy
78d3763b41 Fix refcounting bug in f_removeChild(). Use a smart pointer to handle
the case where the removed child has no other referants, otherwise it
will be deleted on function exit.  Also give the ghost type a name for
cleaner debugging.
2008-11-03 23:50:33 +00:00
mfranz
a4c23008f4 let removeChild() return the detached node (like the c++ version) 2008-07-24 11:25:13 +00:00
mfranz
c9dccf4841 return attribute mask as unsigned 2008-07-10 11:36:10 +00:00
mfranz
f08d1bf5b4 let n.getAttribute("last") return SGPropertyNode::LAST_USED_ATTRIBUTE
(this is the same constant value for all properties)
2008-07-10 10:58:06 +00:00
mfranz
de527e3891 rename attributes write/read to writable/readable (The original names
where chosen to match the SGPropertyNode::WRITE/READ symbol names and
should make it more consistent, but this isn't really something that
should be exposed to the Nasal developer.)
2008-07-07 10:23:24 +00:00
mfranz
dd964fef6e getAttribute(): s/refcount/references/ 2007-10-21 20:19:12 +00:00
mfranz
2a70b87493 make node.getAttribute("refcount") return the SGSharedPtr's refcount
(meant for debugging purposes)
2007-10-20 17:16:43 +00:00
mfranz
200abfef2d - listener: re-order and change callback function args; simplify code
- make code look like Andy wrote it (so people know whom to blame :-)
- nasal-props.cxx: warning--
2007-10-16 15:15:41 +00:00
mfranz
ef3fb93056 let foo.getAttribute("listeners") return the number of listeners attached
to props.Node foo  (shall be used in debug.nas and possibly props.nas)
2007-05-07 14:23:56 +00:00
mfranz
b5f53c349f setAttribute("archive", 1) sets this attribute to "true", and
getAttribute("archive") returns 1 if the attribute is set, and 0 otherwise.

Allow to query and to set all properties by not specifying an attribute
string:  getAttribute() returns all attributes bit coded in an integer,
and setAttribute(attr) sets all attributes. No assumptions may be made
about the meaning of the bits -- they can be changed in future fgfs releases.
The only valid use is to compare or set attribute numbers obtained in the
same fgfs run. This is meant for allowing full copies of property branches.
Also add getAttribute query strings "children" for the number of children,
and "alias".
2007-04-04 14:42:38 +00:00
mfranz
4a79d82ba6 make attribute strings lowercase with hyphen instead of underscore;
this is consistent with their use as XML attributes
2007-01-14 13:58:15 +00:00
mfranz
d0bbe1f45d add getAttribute() and setAttribute() method 2007-01-12 18:00:56 +00:00
andy
3362ea2447 A bug was discovered on IRC where an errant script was setting a nil
value on a property.  This becomes a NaN when converted to a numeric
value, which then percolated into the C++ world where it ultimately
caused a crash in YASim's turbulence code.  While converting nil to
NaN isn't *strictly* wrong, it's dangerous for this reason.  Toss a
Nasal exception instead.  Hopefully this won't break too much
preexisting code.
2006-10-17 19:58:33 +00:00
andy
0c109dabbb More warnings, similar issues. 2006-08-08 18:32:17 +00:00
mfranz
e0b1d12a60 don't abort fgfs only because a nasal script called a property function
with an invalid path, as in getprop("/sim/model/737") or x.getNode("f:1").
Forward sg's error message to the Nasal runtime error function instead, so
you get something like:

  Nasal runtime error: name must begin with alpha or '_'
    at /home/m/fgfs/Base.local/Nasal/props.nas, line 30

Unfortunately, the location points to the line where the ghost wrapper
sits, rather than the offending script line.
2006-05-23 18:55:38 +00:00
fredb
36e4045810 Add missing include files needed by the new math code under windows 2006-02-18 13:58:09 +00:00
mfranz
0b136fa66b getChild(): add optional "create" flag (like in the c++ version) 2006-01-27 20:43:40 +00:00
mfranz
75877ebf43 ... and don't keep. This causes nasty, mysterious bugs and has no advantages. 2005-10-23 16:13:53 +00:00
mfranz
cad193a1c4 add support for removeChildren(): takes one name as optional argument
and removes all children with this name; if no name is given, removes
all children  (OK'ed by Andy)
2005-10-23 16:10:32 +00:00
andy
142854d3d1 Upgrade to Nasal 1.0 test candidate 2005-04-18 19:49:13 +00:00
ehofman
def25f39d5 gcc 4.0 fixes. 2004-12-18 11:59:33 +00:00
curt
2acdd02879 Clean up various compiler warnings that have crept into the code. This
by no means get's them all, but it's a start.
2004-04-01 15:27:53 +00:00