Lots of stuff left to do....

update : http://www.ogre3d.org/wiki/index.php/ShoggothNotes

- A lot of methods that return objects (instead of pointers)
  haven't been wrapped. It's because I'm not sure if I handle
  them right. For example, this method of SceneNode

    const Vector3 &getPosition (void) const

  returns a reference, not a pointer. Should I do this?

  Vector3 *
  SceneNode::getPosition()
    CODE:
      RETVAL = new Vector3;
      *RETVAL = THIS->getPosition();
    OUTPUT:
      RETVAL

  Does that leak memory? I'd guess so.
  (note: I found out that in some of these cases, I guess where
  it's a const ref, I can do RETVAL = &(THIS->getPosition()))

- Another problem is polymorphic methods, where the same method
  can have different call signatures (e.g. pass in either a Vector3
  or three Reals). Very tedious to implement in XS.
  but it'd be better if all the different ways would work.
  I guess it could be done in Perl, just it would be annoying.
  (Say you have three different XSUBs, then in the Perl module
   a single method calls one of those depending on the arguments
   passed in. But having three different XSUBs, now you have to
   also implement the CODE and OUTPUT section for each one...
   Doing this hundreds of times gets tedious.)
  Maybe I can make a few utility functions.

- There's a problem similar to operator overloading: Vector3 has
  'x', 'y', and 'z' "public attributes", which would ideally be
  exposed in Perl like $v->{x} = 23, etc., but I don't see how
  to do that since the objects are pointers to C++ objects,
  not hashes. Any ideas?
  I guess I could make the pointers be referenced from the hash
  instead of being the object itself.
  (probably end up with an elaborate system like Gtk2 uses - there are
  other problems, like how do you subclass and add data members
  if the object is a C++ pointer?)

- All the modules are loaded from Ogre.pm and Ogre.xs, and the number
  of modules is increasing.... Need to look at getting them to load
  only when used.

- Get Wx and Gtk2 support working better, also look at SDL.

- want to add ability to subclass ControllerValue<Real> / ControllerFunction,
  so that e.g. the Lighting sample app can be done; should be similar
  to the Listener stuff
  (this is in place - but haven't tested it)

- subclasses of MovableObject are unable to have constructors/destructors
  (see notes in BillboardSet.xs)
