Nasal/CppBind: Difference between revisions

1,863 bytes removed ,  8 May 2014
No edit summary
(14 intermediate revisions by the same user not shown)
Line 20: Line 20:
Meanwhile, we suggest to favor cppbind over the old, low-level, approach, it isn't only much more elegant, but also saves you tons of typing, too - and will do certain error-checking automatically that you would otherwise have to implement manually.
Meanwhile, we suggest to favor cppbind over the old, low-level, approach, it isn't only much more elegant, but also saves you tons of typing, too - and will do certain error-checking automatically that you would otherwise have to implement manually.


After working through this article, some of the more useful things to play with it the beginning, would be exposing additional SG/FG classes to Nasal space, such as for example:
== Worthwhile Targets ==
* SGPath {{Progressbar|70}} (Tom is currently working on this)
{{Template:Mentored Volunteer Effort
* the loglist/SG_LOG() logging buffer machinery [http://forum.flightgear.org/viewtopic.php?f=17&t=21480&p=195517#p195517]
|mentors= Hooray (get in touch to learn more)
* FGProtocol, to implement I/O protocols via Nasal [http://forum.flightgear.org/viewtopic.php?f=30&t=21346&p=194458&hilit=fginterface#p194456] [http://forum.flightgear.org/viewtopic.php?f=18&t=21561&p=196141#p196141]
|skills=[[Building Flightgear]], [[Developing using CMake]], [[Programming Resources#Programming_-_Background_knowledge|C++]], some [[Nasal]] }}
* the SGSubsystem interface to register scripted SGSubsystems
* the flight recorder system (replay buffers)
* the autopilot system [http://forum.flightgear.org/viewtopic.php?p=149376#p149376] [http://forum.flightgear.org/viewtopic.php?f=66&t=21217&hilit=cppbind#p193357] [http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg38172.html] (there are certain [[How the Nasal GC works|Nasal GC issues]], so that we ask people not to implement FDM-coupled Nasal code like autopilots)
* exposing the sound manager, so that scripts can directly play audio files [http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg18550.html]
* exposing the random buildings system [http://forum.flightgear.org/viewtopic.php?f=5&t=21131&p=192489&hilit=cppbind#p192489]
* There's also a pending feature request ({{Issue|619}}) to implement USB-HID support [http://forum.flightgear.org/viewtopic.php?f=24&t=20159&p=185021&hilit=cppbind#p185021].
* [[Howto:Using OpenCL in FlightGear]]
* [[Developing with HLA|Nasal/HLA bindings]], so that we can run certain scripts as HLA federates outside the fgfs process space (such as bombable or local weather)


Before working on anything related, please do get in touch with other contributors to ensure that this list is still up-to-date.


For more technical Nasal questions (C API, internals etc), you'll probably want to refer to Philosopher, TheTom, Zakalawe or Hooray on the forum - TheTom and Zakalawe can also provide help on using cppbind, having both used it extensively during the last months.
{{CppBind Ideas}}


== Prerequisites ==
== Prerequisites ==