[Bf-committers] Proposal: Object creation
gsr.b3d at infernal-iceberg.com
Tue Oct 4 16:47:38 CEST 2011
martin.buerbaum at gmx.at (2011-10-04 at 1113.02 +0200):
> Follow up of the "redo operator with last used settings (patch)" thread
> I propose a new way of handling newly created objects in Blender.
> I'm sure this may not have a high priority right now, but discussion and planning is never a bad thing IMHO.
> I'll not go into detail how this should be implemented since Blenders internal architecture is still new to me. I'll add my basic ideas though.
> C&C welcome (especially from the coding and framework perspective).
> OBJECT CREATION
> Everything created with an "Add" operator is initially locked from editing and can only be changed by tweaking its parameters (see below of editing).
> My basic idea would be to store a unique identifier (operator name?) and the defining parameters (operator parameters?) in that object somehow.
> Maybe making this its own object type (e.g. "Generated") would work?
> PARAMETER EDITING
> The parameters of the object can then be tweaked (in object or edit-mode, see below) to ones linking.
> I imagine this would be done by taking the the operator and parameters and "redo" them.
> CONTENT EDITING
> After creation you can enter edit mode, but you will not be able to change anything except the parameters.
> When one wants to edit the data of the object directly (mesh/curve/etc.) it will be converted to an "editable" object.
> That means that after that the object behaves no different than it does right now in Blender.
> This can be done automatically (with a small prompt to the user) or explicitly by "unlocking" (i.e. converting) the object.
> I'm not sure if dropping the operator & parameters it was created with is good or bad at this point.
This reminds a lot of what happens with NURBS, Meta or Text
objects. So one Blenderish approach would be to add a new object type
that has high level controls and can be converted into meshes when
needed. It would fit the user workflow 100% and you have other code
examples to follow.
More information about the Bf-committers