Blender Git Commit Log
Git Commits -> Revision dcb7517
Revision dcb7517 by Geoffrey Bantle (master) February 22, 2006, 02:17 (GMT) |
[Two Sections here; First is the log that *should* have been included to my previous commit (whoops). The second part covers the changes I have made to the code since then (all related to merge tools code).] # Part One: Complete Log for Commit from 2/13/06 -> Upgraded merge tools. The new merge tools add several options to blenders Merge submenu, accessed via the WKEY whilst in Editmode for meshes. The new options depend on current mode: - Vertex mode: "At First" and "At Last" When choosing "At First" or "At last" it will merge all selected vertices at the first or last selected vertex. (Note: Blender now keeps track of the last and first verts selected in editMode (G.editMesh->lastvert and G.editMesh->firstvert pointers. This meant additions were made to the undomesh code in editmesh.c as well). - Edge mode: "Collapse Edges" When choosing this option, Blender examines the current set of selected edges and groups them according whether or not they are topologically connected. It then goes through each group and merges them one by one to a single point. - Face Mode: "Collapse Faces" Works the same as "Collapse Edges", only works on groups of topologically connected faces. -> Inclusive selection mode conversion. This feature extends the ability of blenders selection mode conversions. Currently when you change selection modes from a "lower order" mode to a "higher order" one (vertex->edge, vertex->face or edge->face) blender only selects elements in the new mode whose elements were completely selected in the previous mode. This patch does not change blenders default behavior but offers implicit selection mode conversion as an alternative. To access it, hold either the left or right CTRL keys and click on a selection mode in the view 3d selection mode header buttons. This can be accessed via the CTRL-TAB selection mode switching as well, simply hold CTRL while clicking the mode you want or entering its number on the keypad. In some programs, such as Wings and Mirai, it has been demonstrated that it can also be very useful to exploit selection mode switching to implicitly select previously unselected elements as well. For instance switching selection mode from vertex to edges will select all edges currently associated with the currently selected vertices. The same behavior is applied to switching between vertex->face and edge->face. By exploiting this sort of selection conversion complex selection sets can be built quicker. Furthermore I modified blenders UndoMesh code to make selection mode switching "undo coherent". Aside from its relevance to inclusive selection mode conversion, this really counts as a "bug" in my mind. Previously selection mode switch could cause the selection state of the mesh to be invalid when certain modeling operations were undone. An example of this would be "edge subdivide-> switch to face mode-> undo"; you end up with edges selected while still in face mode! # Part Two: Log for this Commit -> Code Cleanup As per Ton's request I reformatted all my code, changed variable names and eliminated my use of "LinkNode" structs and replaced them with "ListBase" instead. There should be no warnings while compiling now either. -> Remove doubles bug Fixed small problem in removedoublesflag() in editmesh_tools.c that caused editface structs to get their UV's scrambled. Vertex colors might not be safe though? Need to investigate later. -> Small bug in in the the code for merge last/first It could cause a crash when exiting editmode, switching meshes, then entering editmode again. "lastvert" and "firstvert" pointers are now set to NULL whenever exiting editmode now (see load_editmesh() in editmesh.c). I will find a better solution to this *soon*... -> All merge tools now UV aware (optional) The default behavior is to leave UVs alone, but if you hold CTRL while clicking on the menu entry, UV's are merged. This works fine in most situations, although some investigation into how to best handle merging of UVs at the border of UV islands needs to be done. This last item brings up a point about the current state of the interface: several functions accessed through the WKEY menu now use the CTRL modifier to change how they behave (This convention has been in place for a while, see subdivide for example). Unfortunately there is no way to communicate the way modifier keys change the behavior of certain functions to the user. This makes such options invisible for all intents and purposes... |
Commit Details:
Full Hash: dcb751725ed3057c29aca57f04479ef9a4380d82
SVN Revision: 6888
Parent Commit: ecaee2e
Lines Changed: +359, -249
7 Modified Paths:
/source/blender/include/BIF_editmesh.h (+4, -3) (Diff)
/source/blender/src/edit.c (+14, -9) (Diff)
/source/blender/src/editmesh.c (+3, -0) (Diff)
/source/blender/src/editmesh_lib.c (+9, -9) (Diff)
/source/blender/src/editmesh_mods.c (+8, -4) (Diff)
/source/blender/src/editmesh_tools.c (+316, -222) (Diff)
/source/blender/src/header_view3d.c (+5, -2) (Diff)
/source/blender/src/edit.c (+14, -9) (Diff)
/source/blender/src/editmesh.c (+3, -0) (Diff)
/source/blender/src/editmesh_lib.c (+9, -9) (Diff)
/source/blender/src/editmesh_mods.c (+8, -4) (Diff)
/source/blender/src/editmesh_tools.c (+316, -222) (Diff)
/source/blender/src/header_view3d.c (+5, -2) (Diff)