Object plugins (Was: Re: Article in Inter.net (Was: RE: Bug 51471- Possible bugfix))
Andreas Zehender
kpovmodeler-devel@mail.kde.org
Sat, 8 Mar 2003 07:34:17 +0100
Hi!
On Friday, 07. March 2003 21:34, CARVALHO Luis Passos wrote:
> > I think the rules belong to the objects, not the renderers
> > and that's what the
> > insert rules system was designed for. Each plugin that adds
> > new objects adds
> > the insert rules for these objects.
> > I don't want the scene to become invalid if you change the renderer.
>
> I see. Well, we could add the base ruleset used to the scene specification,
> but I agree with you that the rules belong to the objects, not the renderer
> or kpovmodeler.
> It would be just a way to make it easier for a user to use the application
> with a specific renderer that doesn't support the rules specified for
> povray.
My suggestion: We have a number of templates that can be choosen by the user
when he creates a new scene.
"Empty povray scene", "Small povray scene", "Empty renderman scene"...
Dependent on the selected template the correct set of object plugins is
chosen. If the user loads additional plugins with objects not supported by
the current renderer, it is his fault.
The only problem so far:
The insert rules system object is a singleton. Imagine the user opens a povray
_and_ a renderman scene. These two parts are in the same process space and
will share the singleton instance. The system will contain the rules of both
plugins and therefore the rules of all renderman and povray objects. Same
with the prototype manager.
The plugins are loaded on a per part basis. That means the actions for the
plugins objects (menu and toolbar items) are only visible in the
corresponding window.
There will be no actions for renderman objects in the menubar and toolbar for
the povray scene. But if the user copies renderman objects into the povray
scene, the objects are known globally by the system and will be inserted
without any warning into the povray scene, although the renderman plugin is
not loaded
The only solution seems to be for me to remove many singletons like the insert
rules system and the prototype manager, add an own instance of these classes
to the part and add a pointer to the part to all objects.
Greetings,
Andreas
--
--------------------------------------------------
Andreas Zehender
Master of Computer Science, Dipl. Ing. (BA)
http://www.azweb.de
az@azweb.de | zehender@kde.org
--------------------------------------------------