[Bf-committers] Individual extrude
joeedh
joeeagar at prodigy.net
Wed Oct 20 07:09:30 CEST 2004
trip wrote:
> joeedh wrote:
>
>> Jason Saunders wrote:
>>
>>> Now in CVS we have "individual" extrude, which is a great feature.
>>> However, the way its implemented isn't lovely for workflow IMO. When
>>> you press 'E', a little menu pops up and you chose the extrude "mode"
>>> you want to use. However, i think that it would be better to have it
>>> so you press E to begin extruding, and then pressing 'i' WHILE
>>> extruding would toggle between individual/region extrude (there could
>>> even be 'helper' text on the 3dview header to indicate this). This
>>> way, you aren't presented with a menu every time you enter extrude
>>> mode, and also it makes it easy to switch back and forth between
>>> individual/region extrude (if the need arises).
>>>
>>> Anyways, just an idea.
>>>
>>>
>> Great idea, except that implementing it may not be possible. Or it
>> may, if you were to use undo. . .hmm. . .
>>
>> The steps of extrusion:
>> Extude:
>> Normal Transfrom
>>
>> Maybe:
>> Extrude.
>> Transform.
>> [User presses 'i']
>> Undo.
>> Extrude
>> Transform.
>>
>> Sound good? I'll have to try it out.
>>
>> joeedh
>> _______________________________________________
>> Bf-committers mailing list
>> Bf-committers at projects.blender.org
>> http://projects.blender.org/mailman/listinfo/bf-committers
>> t
>
>
> ????????????????
> just make it shift E, or is that taken already ?? Maybe a mod button
> in the edit button window
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at projects.blender.org
> http://projects.blender.org/mailman/listinfo/bf-committers
>
SHIFT-E is for subsurf creases. CTRL-E is for marking seams.
Putting extra junk in transform.c would not be a good thing (see my last
post). . .What could work is maybe a special function for specilized
tool modifiers, for example, extrudeflag_*() could set a special flag
in, say, G.transflag (EXTRUDING, for example) and then there could be a
special function that processes events inside the main Transform() loop,
looks up G.stransmode and applies per-tool modifications.
Hmm. It would be important to leave everything out of the main
Transform() code, e.g. other then the fact that the special function is
run inside Transform(), it wouldn't interact in any other way with the
Transform() functions. This special function (TransModifiers()?) would
take the current event as argument (if the event hasn't been used by
Transform() of course) and return whether or not to break the while
loop. So for example:
int SpecialModifier(int event)
{
if (G.stransmode & EXTRUDING) {
if (event == IKEY) {
//break the loop
BIF_undo(); //or whatever it is.
extrude_indiv(SELECT); //or whatever it is.
//it may be a good idea to find some way to prepare the
initial mouse position array,
//trans.imval[2].
Transform(NORMALGRAB); //we use preproceesor defines in the
new Transform().
return 0;
}
}
//don't break the loop if it hasn't been broken already.
return 1;
}
Martin? Think this could work? Maybe I'll try it out. . .
joeedh
More information about the Bf-committers
mailing list