[Bf-committers] true edge and face edit modes

Ton Roosendaal bf-committers@blender.org
Sat, 10 Apr 2004 19:30:52 +0200

Hi Brecht,

Exactly my idea! :)

It all will have quite some consequences though. The way it's being  
accessed for example. I don't think it can be other implemented than  
using a 'mode' here (like Wings), but it would be very interesting to  
find a way to do it non-modal. The latter would mean that you can  
always select verts/edges/faces with a single command.
To make that work, the way you store such selection information should  
merge somehow, and that's the bottleneck... because selecting 3  
vertices *could* be different from selecting the edges or face. Or do  
we want a situation of having a face selected, but not its edges and  
vertices? Hrms...

Another to consider is whether the old (backbuffer based) faceselecting  
is useful for modeling... how to access interior faces then?
A ray-trace based method could be nice here, selecting first closest  
face, but on next click increases 'depth' for selection. Also a  
research topic.

Lastly, it can be combined with code shuffling too. The oversized  
editmesh.c could use some good cleanup and probably split in pieces.


On Saturday, Apr 10, 2004, at 01:30 Europe/Amsterdam, Brecht Van Lommel  

> Hi all,
> I will have quite some time to code in the following weeks / months. So
> I thought I would just take on this project. I'm posting this to see  
> who
> has interest / time / ideas. It's just a rough proposal, on how we  
> could
> do it code-wise. It doesn't include any ideas of how to really take
> advantage of these modes. It's not perfect, but I thought I'd post
> something to maybe get things going.
> True Face en Edge Mode:
> - Three modes: Vertex, Edge and Face.
> - Use same EditMesh data structure, and make it available in all three
>   modes. Hopefully no or only slight changes will be needed.
> - The modes will not be really different internally. A function should
>   not have to know in which mode it is, unless it wants to offer
>   different behavior for different modes. There would also be fast
>   switching: no or at least very little data conversion needed when
>   switching modes.
> - Edit Mode functions will still work while this is WIP, can modified  
> to
>   have different behavior in different modes later.
> - Face Select Mode (and paint) functions will need to be converted
>   completely, but the functions are not that complicated as far as I've
>   seen. For some off the more complex ones, it would be best to rethink
>   to be faster with the new data structures available.
> - Need plan to convert code step by step. Keep things 'working' as much
>   as possible.
> Plan:
> 1. Make EditMesh structure available in Face Select, Paint Mode, don't
>    disable old data structures immediately.
> 2. Convert Face Select drawing functions to use EditMesh. Keep old
>    drawing available somehow, for some time, for next step.
> 3. Convert Face Select, Paint functions to use EditMesh. While working
>    on this, the old an new data structure will not automatically be in
>    sync, but that's why it is possible to draw both data structure.
> 4. Introduce Edge Select Mode.
> 5. Make Edge and (Edit Mode ready) Face drawing functions.
> 6. Adapt Edit Mode functions to work different in different modes, if
>    necessary (Extrude for example).
> All this is quite some work, but not impossible in my opinion.
> This might not be the ideal time to propose this, weeks before the next
> release and maybe near exams for some. I also know there are also some
> plans to move Edit Mode functions to python, and I have not taken them
> into account. I simply have no idea how it would all work, or how these
> plans would affect this.
> I think I could already start on the first steps (merging Edit Mode and
> Face Select Mode), in the next weeks. Downloading Wings now to get some
> inspiration :).
> Any comments?
> Cheers,
> Brecht
> _______________________________________________
> Bf-committers mailing list
> Bf-committers@blender.org
> http://www.blender.org/mailman/listinfo/bf-committers
Ton Roosendaal  Blender Foundation ton@blender.org