[Bf-blender-cvs] CVS commit: blender/source/blender/blenlib BLI_editVert.h blender/source/blender/include BIF_editmesh.h blender/source/blender/src edit.c editmesh.c editmesh_lib.c editmesh_mods.c editmesh_tools.c

Geoffrey Bantle hairbat at yahoo.com
Mon Mar 27 07:19:15 CEST 2006


briggs (Geoffrey  Bantle) 2006/03/27 07:19:15 CEST

  Modified files:
    blender/source/blender/blenlib BLI_editVert.h 
    blender/source/blender/include BIF_editmesh.h 
    blender/source/blender/src edit.c editmesh.c editmesh_lib.c 
                               editmesh_mods.c editmesh_tools.c 
  
  Log:
  -> 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...'
  
  Revision  Changes    Path
  1.25      +16 -5     blender/source/blender/blenlib/BLI_editVert.h
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/source/blender/blenlib/BLI_editVert.h.diff?r1=1.24&r2=1.25&cvsroot=bf-blender>
  1.61      +3 -1      blender/source/blender/include/BIF_editmesh.h
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/source/blender/include/BIF_editmesh.h.diff?r1=1.60&r2=1.61&cvsroot=bf-blender>
  1.86      +9 -14     blender/source/blender/src/edit.c
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/source/blender/src/edit.c.diff?r1=1.85&r2=1.86&cvsroot=bf-blender>
  1.171     +63 -49    blender/source/blender/src/editmesh.c
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/source/blender/src/editmesh.c.diff?r1=1.170&r2=1.171&cvsroot=bf-blender>
  1.54      +70 -2     blender/source/blender/src/editmesh_lib.c
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/source/blender/src/editmesh_lib.c.diff?r1=1.53&r2=1.54&cvsroot=bf-blender>
  1.91      +9 -3      blender/source/blender/src/editmesh_mods.c
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/source/blender/src/editmesh_mods.c.diff?r1=1.90&r2=1.91&cvsroot=bf-blender>
  1.144     +19 -14    blender/source/blender/src/editmesh_tools.c
    <http://projects.blender.org/viewcvs/viewcvs.cgi/blender/source/blender/src/editmesh_tools.c.diff?r1=1.143&r2=1.144&cvsroot=bf-blender>



More information about the Bf-blender-cvs mailing list