テンプレート:Release Notes/2.42/Mesh/Editing
目次
- 1 Mesh editing
- 2 Sharp Flat select
- 3 Selection
- 4 Edge Ring and Edge Loop MultiSelect
- 5 inclusive selection mode conversion
- 6 Vertex Path
- 7 Loop to Region and Region to Loop
- 8 mesh align
- 9 curves
- 10 transform
- 11 merge tools
- 12 Vertex Group/Weight support in removedoublesflag()
- 13 Array modifier patch by Ben Batt! (#3788)
- 14 copy curve modifiers
- 15 around individual center
- 16 mesh tools
- 17 Stored Selections
- 18 transforms
- 19 Transform Display
- 20 transforms
- 21 mesh
- 22 stored selection
- 23 Tools
- 24 mesh tools
Mesh editing
True X-mirror mesh editing!
Set the option in EditMode, in 2nd mesh tools panel. It only works on transform options now (grab/rot/scale), and of course assumes a near-perfect symmetrical mesh. Mesh Object itself can be on any location though (and rotated etc).
Sharp Flat select
sharp/flat mesh editmode selection tools. The documentation can be found here:
http://mediawiki.blender.org/index.php/Requests/SharpFlatSelect
Selection
Added "select same group" to select group menu. Accessed via Shift+G while in Mesh Edit Mode.
Depending on your mode; face, edge, or vertex, you will get different selection options. Try them out and be amazed! *more details to be added*
Edge Ring and Edge Loop MultiSelect
Mode: Mesh Edit Mode (While in edge or face selection mode.)
Hotkey: CtrlE
Menu: Select → Edge Loop/Edge Ring...
Description
Two new selection options can be accessed while in edit mode, they are Edge Ring and Edge Loop. You can access them through the select pop-up menu or by pressing Ctrl-E while in edit mode. They can be used to build large selection sets quickly.
Example
inclusive selection mode conversion
inclusive selection mode conversion
Vertex Path
Description
Vertex Path will find the shortest path of vertices between the last 2 vertices selected. There are 2 options for determining the shortest path. One finds the path with shortest physical distance or edge length, and the other finds the path with shortest topological distance.
Examples
Technical Details
The tool uses a straightforward implementation of Dijsktra's algorithm and may be a bit slow on extremely large meshes. As a speedup you can hide the parts of the mesh that you are not working on and they will not be searched.
Loop to Region and Region to Loop
Description
Examines the current set of selected edges and seperates them into groups of 'loops' that each bisect the mesh into two parts. Then for each loop it selects the smaller 'half' of the mesh.
Examples - Loop to Region:
Example - Region to Loop:
mesh align
Made mesh align to face/verts also align to an edge and a verts normal, existing functionality was not changed. usefull for rotating about an edge.
curves
Wanted feature for curves: a render-time resolution. This option is located under the 'def resolu' button. If not zero, it assigns this resolution to a curve on render. Also copies with ctrl+c menu.
transform
Bug #2839: Shift key not working in Shear, Push-Pull and shrink-Fatten - I changed the input method for shear quite a bit. It used to be constant regardless of zooming, so it was quite limiting in the amount of shear you could do. However, I'm not sure if the current method is quite well adjusted, if you think it works too fast, please drop me a line. It's basicly the same method as Shrink-Fatten / Push-Pull except on an horizontal basis. (since shear is an horizontal motion and the two others are more like pulling towards/pushing away from you in regards to the center) - Factored out the input methods in preparation for later code <evil>.
merge tools
Log:
[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...
Vertex Group/Weight support in removedoublesflag()
Remove doubles didn't previously deal with vertex groups/weights properly. Now it averages the weights of vertices when they are doubles and share the same group. Verts that get merged but don't belong to all the same groups are dealt with as well.
Array modifier patch by Ben Batt! (#3788)
This modifier allows to make arrays of meshes, with multiple offset types: - constant offset - offset relative to object width - offset with scale and rotation based on another object The number of duplicates can be computed based on a fixed count, fixed length or length of a curve. Duplicate vertices can be automatically merged. Nice docs and example files available in the wiki: http://mediawiki.blender.org/index.php/BlenderDev/ArrayModifier
copy curve modifiers
CTRL+C Copy Menu now includes modifiers for Curve objects.
around individual center
Quick feature: "Around Individual Centers" now works in editmode mesh, but only in Face-Select mode. It then uses for rotate and scaling the face center itself as reference. Code uses a loop-in-loop to find the face that belongs to the vertex... means it will be slow with operations on 10k or more faces. Acceptable for now, will make it nicer later. :)
mesh tools
Added select group edges (Length/Direction/FaceUsers) Added VecAngle2 - needed for grouping by normal and planer faces. Made select face & edge group ignore hidden faces. fixed a bug where hiding faces didnt update G.tot*sel
Stored Selections
Previously Blender did not store the order in which vertices, edges or faces were selected in edit mode. In many cases it is useful to have this data, however it is not desirable to store every selection made. Now blender stores selections in the order in which they were made in a linked list called 'selected' in EditMesh. EditSelection structs are created whenever 'EM_store_selection' from editmesh_lib.c is called (currently only on user selection with mouse). There are several cases in which they might be deallocated by calling the 'EM_remove_selection' function however: -When the user deselects something with the mouse ('mouse_mesh' in editmesh_mods.c) -When switching selection modes stored selections that are not relevant to the new mode are removed by the 'EM_strip_selections' function (multi-select mode is supported) -When the vertex, edge or face pointed to by a certain stored selection is deallocated -When EM_clear_flag_all is called and where the flag passed to the function contains the 'SELECT' bitmask. -When leaving edit mode (making stored selection data persistent across editing sessions will require modifications to mesh DNA later) Todo: There are a few cases still where you can temporarily end up with a stored selection that points to an element that is no longer selected (edge loop de-select can cause this for instance). The solution to this is to add a call to EM_remove_selection from 'EM_select_edge' and 'EM_select_face' when these functions are being used to deselect elements. For the sake of completeness however this will also require that an 'EM_select_vert' function be coded and called at all appropriate parts of the editmesh code. I will look into this later in the week. For now there are two tools that already take advantage of the stored selections. The first one is 'merge at first or last vertex' in the merge menu (the 'firstvert' and 'lastvert' pointers are gone from EditMesh). The second tool is path select, which builds a path between the last vert selected and the second to last vert selected. This allows you to build complex path selections in a short amount of time like this 'select A, select B, path select. select C, path select. select D...'
transforms
Log: Added rotate about centre for active Vert/Edge/Face in mesh editmode. also works for getting the V/E/F normal. Means we can now rotate about the last selected edge.
Transform Display
Based on a patch by Matthias Derer, this adds the distance moved to a translation (grab) transform (both 3D and 2D, although the 2D transform displays the normalised distance only).
transforms
Seperated out some functionality into 3 new functions. EM_editselection_center EM_editselection_normal EM_editselection_plane These functions are used by the manipulator to get data from an editselection. regardless of weather its a face/edge/vert.
mesh
Make editmesh edge length and face area drawing's precission proportonate to the gridsize. Needed when working with small models.
Added "Similar Edge Face Angles" to "Select Edge Groups" This means you can select edges based on the angles of edges in the existing selection. Only works for edges with 2 face users at the moment.
stored selection
Stored Selections in Mesh DNA
Stored selections now get saved to mesh library blocks as direct data. The idea that stored selections are 'erased' when leaving editmode and switching objects is pretty mysterious for the user. Note that currently the mselect array in a mesh is not written to file. Not sure whether to change this or not.
Tools
Patch #4119, submitted by Lukas Steiblys (imbusy1). Mesh objects (created through the toolbox) which take user input such as number of verts, are not created if the user cancels input. Thanks for the patch!
mesh tools
-> New menu and toolbox entries
Added the following to the 'select' menu of 3d header and toolbox while in mesh editmode: ' -Path Select -Edge Loop Multi-Select -Edge Ring Multi-Select -Loop to Region -Region to Loop Also added Collapse Faces and Collapse Edges to menu and toolbox as well as made them available in selection modes other than face exclusive and edge exclusive.