[Bf-committers] BOAL idea. . something really, really needed

joeedh joeeagar at prodigy.net
Mon Sep 13 19:33:50 CEST 2004

Ton Roosendaal wrote:

> Hi,
> You could check on the notes I made to explain the design process for  
> Blender. It's on blender3d.org -> InfoCenter -> Development, where 
> you  can find a lot of goodies.

Read all of those.

> http://www.blender3d.org/cms/Blender_Architecture.336.0.html
> A the time this design happened, CSG was already getting out of the  
> picture as outdated. The last true CSG based modeler/renderer (gig 
> 3d)  disappeared just because it's very hard to work with. But here I 
> talk  from the 3d animation tool perspective, and based on development 
> as  reflected in the yearly Siggraph proceedings/conferences.

That's where OpenCSG comes into the picture.  Real-time preview of 
CSG-based modelling.  Which reminds me, I still need to write a C api 
for it. . .

> Nevertheless, the "Meta" object type was also meant to be the 
> primitive  type in Blender to experiment with CSG structures. There's 
> what you can  call a "CSG Object".
> Having c++ within Blender core, and especially dynamic c++ plugins is  
> an architecture proposal which is out of the scope of what we do  
> currently. Regular C is still standard, and when you prefer to use 
> C++  (which is fine) it should be delivered as a library with a C API  
> wrapper to interface with the rest of Blender.

That was how I planned to do it, yes.  C++ wraper with a C API.  Blender 
itself won't know a thing, it'll simply see another Object type.

> I've coded the main object and data system in Blender, and theres  
> several aspects in it you could describe as 'horrible mess' yes, but  
> that's on a very different level.

Sorry about that.  Should've realized that all C code is going to seem 
like "a horrible mess" if you come from a C++ viewpoint (obviously I 
need lessons in tactfulness :) ) .

Actualy, all I wanted to do was to is make it easier to new code Object 
types.  I think this would be beneficial, especially with that new NURBS 
library (Nurbana?), or perhaps a Cloth object, or whatever *you* want 
(although I have to admit I've come pretty close to making a Cloth 
object in Python.  Just need that OnSave scriptlink).

I mean this as a *suggestion*.  If you don't like it, then it'll simply 
become part of my CSG code, and not one will ever have to worry about it 
again.  Unless you really don't want it.

> Your perception seems to be based on biased opinions on C and  
> requirements for a CSG system, which completely - and purposedly -  
> conflicts with how it currently works.
> -Ton-

Ok.  But I can still use it for my CSG object (the internal Blender 
object won't see any difference) right?  Or not?

Oh, and a little hint about the Listbase-type linked lists would be 
nice--I know how Linked Lists work, but Blender's system confuses me.  
Not that I'm saying ITs a horrible mess, mind you.  I really like 
Blender's Library system, I think it's incredibly cool. 


P.S.: I named it BOAL because that describes its functionality--I did 
NOT mean the New Offical Blender Object Abstraction Layer.  I probably 
should've picked a different name, like the Unofficial Blender Object 
C++ Campatibility Layer, Use It If You Want It.

More information about the Bf-committers mailing list