Want to contribute

Andreas Zehender kpovmodeler-devel@mail.kde.org
Mon, 3 Feb 2003 21:22:01 +0100


Hi!

On Monday 03 February 2003 19:55, CARVALHO Luis Passos wrote:
> > kpovmodeler/plugins/povray: The plugin class itself,
> > registering, settings
> > dialog page etc.
> > kpovmodeler/plugins/povray/textures: Textures and edit widgets
> > kpovmodeler/plugins/povray/objects: Objects and edit widgets
> > kpovmodeler/plugins/povray/io: Povray import (parser) and export
> > (serialization)
>
> This one I don't understand.
> You mean you intend to move everything we have into a single specialized
> povray plugin?
> Or does it mean we'll have one plugin for each povray object, plus one
> pluging for import and another for export?

One povray plugin.  That's what I had in mind.

> My idea was that plugins would allow us to extend what kpovmodeler
> provides, not replace kpovmodeler. If we have a specialized povray plugin
> for all things povray provides, we'll have a monster plugin for each
> renderer that has little or no code reuse with the others.
>
> Although the textures are usually very specific to a renderer, the 3d
> objects can be used as they are independently of renderer, as only the
> import/export are different. In this case, I would have IO in a separate
> plugin from the objects/textures.

Hmmm, maybe you are right.
But which objects and textures are common? Not every renderer has a blob 
object. Every renderer has a solid color texture, but not a color map. We 
can't add one plugin for each object.

I agree in separating the io and the objects, but all objects and textures 
should be in one plugin IMHO.

What I plan is to extend the error dialog to display errors with links to 
objects. The dialog will open non-modal. When the user selects an error, the 
corresponding object will be selected. As soon as the user changes the scene, 
continuing the task where the errors occured will not be possble any more. 
The export plugins can then generate errors or warnings like "Blob objects 
are not supported by renderman" with a link to the blob object in the scene. 
This would be a quite userfriendly method to tell the user what is supported 
or not. And this would enable us to make more validation checks at export 
time.

> Could you please share with us what services a plugin must implement?

A plugin can, not has to implement services.
A plugin can add:
- menu items and toolbar icons (implemented)
- new kind of objects (implemented)
- new kind of views (already implemented)
- new io formats (TODO)
- new renderers (TODO)

> Don't forget to change your .signature ;-)

Thanks to remind me. Done :-)

-- 
--------------------------------------------------
 Andreas Zehender
 Master of Computer Science, Dipl. Ing. (BA)
 http://www.azweb.de
 az@azweb.de | zehender@kde.org      
--------------------------------------------------