Revision b997c65 by Martin Poirier September 23, 2004, 23:03 (GMT) |
MSVC 6.0 projectfiles fixes for new editmesh and bpython files. |
Revision 1ae3e3e by Ton Roosendaal September 23, 2004, 22:54 (GMT) |
Fix for loopcut, didn't work after reconstruct... |
Revision 404f4d7 by Ton Roosendaal September 23, 2004, 22:17 (GMT) |
Three bugfixes, thnx to irc testing! :) - separate crashed - wrong button for 'face dot' theme - deselect vertex on mouseclick didnt work |
Revision 16593b5 by Nathan Letwory September 23, 2004, 21:27 (GMT) |
make sure this also builds on Windows. |
Revision ea7afe9 by Ton Roosendaal September 23, 2004, 21:06 (GMT) |
Little thing; added recalc normals after subdivide, for face centers. We have to check on this all over very well. |
Revision a2e918d by Ton Roosendaal September 23, 2004, 20:52 (GMT) |
EditMesh refactory + undo recode The changelog is very long... it's on the web too: http://www.blender3d.org/cms/Mesh_editing_rewrite.425.0.html EditMesh refactor notes (user) **** New selection modes When entering Edit Mode for a Mesh, you now have the choice for three selection modes. These are shown as icons in the 3D header (hotkey is being searched for!). - Vertex Select Select vertices as usual, fully compatible with how previous version work - Edge Select Vertices are not drawn anymore, and selections happen by default on the edges. It is a true edge select, meaning that you can select three out of four edges in a face, without automatic having the 4th edge selected. - Face Select Instead of vertices, now selection 'points' are drawn in the face centers. Selected faces also get a colored outline, like for edges. This also is true face select, for each face individual regardless selection status of its vertices or edges. While holding SHIFT, and press a selection mode, you can also combine the above choices. Now selection becomes mixed, and will behave as expected. For example; in Edge+Face select mode, selecting the 4 edges of a face will select the face too. The selection modes and optional drawing modes (like transparant faces, normals, or solid drawing) all work together. All of Blender's mesh editing tools now react to the correct selection mode as well. Most noticeable it's in: **** Extrude Extruding in Edge or Face Select mode allows much more precise control over what's extruded and what should be excluded. Try for example a checker pattern selection, and extrude it. New is the fixed translation when faces are extruded. This always follows the (averaged) face normal(s) of the old face(s), enabling much easier working in 3D views . A single 'G' (Grab) or 'R' (Rotate) or 'S' (Scale) will change transform modus as usual. **** Other things to note - Hiding edges/faces will also behave different based on Select Mode. - while editing, normals of faces are updated always now - Border select (BKEY) has 2 different rules for edges; when one edge is fully inside of the border, it will only select edges that are fully inside. Otherwise it selects each edge intersecting with the border. - in face mode, adding vertices, edges or a circle is invisible... - "Add monkey" now works as a normal primitive (rotated and on 3d cursor) - Mesh undo was fully recoded, hopefully solving issues now with Vertex Keys and Groups - Going in and out of editmode was fully recoded. Especially on larger models you'll notice substantial speed gain. **** Todo Add 'FaceSelect mode' functionality in EditMode, including zbuffered selection, display and editing of UV texture. EditMesh refactor notes (coder) **** Usage of flags in general The "->f" flags are reserved for the editmesh.c and editmesh_lib.c core functions. Actually only selection status is there now. The "->f1" and "->f2" flags are free to use. They're available in vertex/edge/face structs. Since they're free, check carefully when calling other functions that use these flags... for example extrude() or subdivide() use them. **** Selection flags EditVert: eve->f & SELECT EditEdge: eed->f & SELECT EditFace: efa->f & SELECT - Selection is only possible when not-hidden! - Selection flags are always up-to-date, BUT: if selection mode >= SELECT_EDGE vertex selection flags can be incorrect if selection mode == SELECT_FACE vertex/edge selection flags can be incorrect This because of shared vertices or edges. - use for selecting vertices: eve->f &= SELECT - use for selecting edges always: void EM_select_edge(eed, 1) // 1 = select, 0 = deselect - use for selecting faces always: void EM_select_face(efa, 1) // 1 = select, 0 = deselect - To set the 'f' flags in all of the data: void EM_set_flag_all(int flag); void EM_clear_flag_all(int flag); - the old faceselectedOR() and faceselectedAND() are still there, but only to be used for evaluating its vertices **** Code hints for handling selection If the selectmode is 'face'; vertex or edge selections need to be flushed upward. Same is true for 'edge' selection mode. This means that you'll have to keep track of all selections while coding... selecting the four vertices in a face doesn't automatically select the face anymore. However, by using the above calls, at least selections flush downward (to vertex level). You then can call: void EM_selectmode_flush(void); Which flushes selections back upward, based on the selectmode setting. This function does the following: - if selectmode 'vertex': select edges/faces based on its selected vertices - if selectmode 'edge': select faces based its selected edges This works fine in nice controlled situations. However, only changing the vertex selections then still doesn't select a face in face mode! If you really can't avoid only working with vertex selections, you can use this call: void EM_select_flush(void); Now selection is flushed upward regardless current selectmode. That can be destructive for special cases however, like checkerboard selected faces. So use this only when you know everything else was deselected (or deselect it). Example: adding primitives. **** Hide flags EditVert: eve->h EditEdge: eed->h EditFace: efa->h - all hide flags are always up-to-date - hidden vertices/edges/faces are always deselected. so when you operate on selection only, there's no need to check for hide flag. **** Unified undo for editmode New file: editmode_undo.h A pretty nice function pointer handler style undo. Just code three functions, and your undo will fly! The c file has a good reference. Also note that the old undo system has been replaced. It currently uses minimal dependencies on Meshes themselves (no abuse of going in/out editmode), and is restricted nicely to editmode functions. **** Going in/out editmode As speedup now all vertices/faces/edges are allocated in three big chunks. In vertices/faces/edges now tags are set to denote such data cannot be freed. ALso the hashtable (lookup) for edges uses no mallocs at all anymore, but is part of the EditEdge itself. |
Revision 4b5203e by Jiri Hnidek September 21, 2004, 09:09 (GMT) |
- Cam fixed bug reported by Manuel Bastioni (thanks) - I fixed one bug too. |
Revision e7d3039 by Willian Padovani Germano September 21, 2004, 05:28 (GMT) |
- Blender: added option 'scriptsdir' to Blender.Get(); - small updates to the docs; - Object: small fix to getMatrix: check during_script() to avoid undesired loops; added old behavior (pre 2.34) as option: .getMatrix('oldlocal'); - tentative fix for bug #1275: scene REDRAW scriptlinks were not being executed (the call to do so was missing): http://projects.blender.org/tracker/index.php?func=detail&aid=1275&group_id=9&atid=125 added the call in drawview.c, in drawview3dspace(). This causes the scriptlink to be called for each visible view3d, but that's what happens with object redraw scriptlinks, too. Anyway, this is still a test. The place was chosen based on the idea that a scene redraw scriptlink is like an object redraw one, but for all objs in the scene at once. - Window.Theme: new submodule, to get/set theme options in Blender; - Added the script save_theme.py (Help menu for now), to save the current theme in Blender as an executable script (currently shown in the Scripts->Misc menu). There's more work to do for themes, like defining a proper place for them in the interface, adding documentation (for now the added script and the ones it generates can give a pretty good idea of how to use the new module), probably extending themes to support SpaceScript and so on. |
September 21, 2004, 04:09 (GMT) |
Added Hos' NLA move up/down to the NLA Strip menu. Also enabled 'Strip Properties' there again. |
September 21, 2004, 03:35 (GMT) |
Added the panel context choices in the 'Panels' menu (buttons window). Helps for vertical layouts where the tabs are off screen. |
Revision 7d65af2 by Alfredo de Greef September 20, 2004, 23:59 (GMT) |
test commit Bugfix for anim crash with xml export and no export dir set. Alternate relative path using blender function, but wouldn't be surprised if it still is a problem in some cases for some (windows) users. |
Revision 273c8e0 by Stephen Swaney September 20, 2004, 16:22 (GMT) |
New bpy method for World module to set World for current scene: my_world.makeActive() Contributed by Campbell Barton (ideasman) |
Revision 3eddbfa by Kester Maddock September 20, 2004, 10:41 (GMT) |
Fix link ordering for blenderplayer. |
Revision c4a0a01 by Martin Poirier September 19, 2004, 19:27 (GMT) |
Matt's lamp submenu. And reorganized the #includes in editobject by "modules" |
Revision 74cd2db by Ton Roosendaal September 19, 2004, 17:44 (GMT) |
Removed all calls to object_wave in code, and moved it into the mesh_modifier() in deform.c. Now wave works on top of hooks, before lattice/curve deform and armature. But together! |
Revision e99320e by Martin Poirier September 19, 2004, 15:07 (GMT) |
Fix for scalling bug with Stretch To constraint (practicly same bug as Track To last week, but deeper ramifications since stretch to affects scalling). Quick description of bug: scalling armature had a weird effect on stretch to bone size. |
Revision 143f0ed by Martin Poirier September 19, 2004, 14:33 (GMT) |
Editmesh spliting project files fix (MSVC 6.0) |
September 19, 2004, 14:08 (GMT) |
Moved the 'Load UI' option from the File menu to the fileselect window header. |
Revision b9d82d3 by Nathan Letwory September 19, 2004, 13:46 (GMT) |
Update project files to compile and link with newest changes (editmesh refactoring) |
Revision 790a34e by Ton Roosendaal September 19, 2004, 11:50 (GMT) |
Service: SConscript file! |
|
|
|


Master Commits
MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021