[Bf-committers] true edge and face edit modes

Brecht Van Lommel bf-committers@blender.org
09 Apr 2004 23:30:14 +0000


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