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 / 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)