Changes

Jump to: navigation, search

Howto:Extend Nasal

422 bytes added, 19:12, 27 June 2012
m
A standard interface for mapping C++ classes to Nasal objects
There's a plan to eventually generalize and unify all those helpers in FGPositioned.cxx and provide them as part of the FGNasalSys class (or some custom abstract base class that C++ classes should implement to expose objects to Nasal), so that they automatically become available to all users of the Nasal subsystem, just by implementing a certain interface. By exposing objects with methods, rather than plain variables, it will be possible to compute results lazily.
 
Such an abstract base class should feature:
* virtual constructor to set up: dtor, ghost name, ghost getter
* virtual destructor function to delete Nasal ghosts
* mapping helper to map C++ functions with SG/STL return types to Nasal data structures (std::string, std::vector, std::map)
* lazy getter
* helper: hashset()
* helper: stringToNasal
* helper: to set up valid parents vector for inheritance to work properly
Looking at the code in [http://gitorious.org/fg/flightgear/blobs/78afdb3c2227e75fc1542b3992dcea26181d98cf/src/Scripting/NasalPositioned.cxx#line139 NasalPositioned.cxx]:
18,391
edits

Navigation menu