I am currently in the process of writing a scene serialisation for me engine which sits on top of Ogre. This means I am going to serialise all scenenodes, skysystem (skybox, skydome, sykx), lights, cameras and so on. However I had to realise that Ogre's interface really gives me a hard time extracting information which is existing in the depths of Ogre, but which I can not access without interface changes. Some examples:
- Camera name - it is impossible to extract the name of a camera, however when trying to retrieve a camera from the scenemanager I should be aware of it as a reference . Strange. (I know that there is also the list of cameras). Furthermore I can't rename a camera once it is created. Maybe this is due to implementation issues in Ogre's internals? (if so would be dissapointing). From a users POV working with a scene editor I would very much like to have the possibility to rename a camera once it is created.
- Lights - There is no way of getting a list of lights used in the scene from the scene manager. Maybe that is due to me using the default scene manager and I should change that.
- SceneNode name - it is not possible to retrieve the name of a scene node. Why, what harm would this do?
- Entity material - Why is it not possible to determine the name of the material used in an entity? I am allowed to set it with setMaterial(string), but I can't determine afterwards what materials is actually assigned.
I would be happy if someone here knows if these issues are due to internal design of Ogre. If this is not case I am going to add the methods I need to Ogre (unfortunately forking Ogre, unless the changes go into the official repo).