[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.

-Ton-


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

> 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  
http://www.blender.org