Both SceneObjectGroup and Part are growing beyond manageable sizes (with both
of them over 3000 lines long), and are not very easy to change when trying to
make custom classes bassed on them (as I think Sean found out recently during
his attempts).
Ideally I think we would all like to see the separate Group and Part
architecture replaced with a architecture that was more like a Node based
scenegraph , and had a hierarchy of SceneObjects. But I think we all know of
the problems in doing that, and how much work is involved.
So as a small step in (hopefully) that direction, I propose to start splitting
those two classes up, and having something similar to the interface registry we
use in various of parts of the architecture. (RegisterInterface<type> ,
RequestInterface<type>() ).
So things like the methods for editing prims would move out into a separate
class; for example ISceneObjectGroupEditing. And then when the scenegraph wants
to call a editing method on a Group, it can call :
Group.RequestInterface<ISceneObjectGroupEditing>();
I believe that this will at least make the code more manageable and make those
classes easier to customise. I also hope that it will make it easier to head
towards a new combined architecture for prim handling.
The draw back could be performance, as we will have the overhead of calling
those methods to request the correct interfaces. Although we could do the same
as we do in scene and have properties that can access the common interfaces.
(eg. SceneObjectGroup.Editor)
_______________________________________________
Opensim-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/opensim-dev