diff options
author | Ton Roosendaal <ton@blender.org> | 2009-01-31 16:30:56 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2009-01-31 16:30:56 +0300 |
commit | 86a2a0f6947feab469a108eb7eb875fa5637d036 (patch) | |
tree | ff033132556d35991a488e6dc98807fa5b06b625 /source/blender/editors/mesh/editface.c | |
parent | 607a56cb7a0e5a7fef2214d60a723dd67e8209ab (diff) |
2.5
Edit Mesh:
- Added back "Edge Shortest Path select"
It now also does regular selection, more fun!
It's mapped to CTRL+click now, and makes or clears selections
between current and previously activated edge.
Seam/Sharp/etc marking is a toolsetting mode still. These
options cannot become properties easily, because the tool
uses the properties of selected edge to clear...
- Removed a whole bunch of G.f flags, related to mesh drawing.
It's all now local in me->drawflags. Here's the list of
removed old globals:
G_DRAWEDGES
G_DRAWFACES
G_DRAWNORMALS
G_DRAW_VNORMALS
G_ALLEDGES
G_HIDDENEDGES
G_DRAWCREASES
G_DRAWSEAMS
G_DRAWSHARP
G_DRAWBWEIGHTS
G_DRAW_EDGELEN
G_DRAW_FACEAREA
G_DRAW_EDGEANG
Diffstat (limited to 'source/blender/editors/mesh/editface.c')
-rw-r--r-- | source/blender/editors/mesh/editface.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/source/blender/editors/mesh/editface.c b/source/blender/editors/mesh/editface.c index 4ca302ab06c..b62877bd76e 100644 --- a/source/blender/editors/mesh/editface.c +++ b/source/blender/editors/mesh/editface.c @@ -826,6 +826,8 @@ int minmax_tface(Scene *scene, float *min, float *max) return ok; } +/* ******************** edge loop shortest path ********************* */ + #define ME_SEAM_DONE 2 /* reuse this flag */ static float edgetag_cut_cost(EditMesh *em, int e1, int e2, int vert) @@ -871,7 +873,11 @@ static void edgetag_add_adjacent(EditMesh *em, Heap *heap, int mednum, int vertn void edgetag_context_set(Scene *scene, EditEdge *eed, int val) { + switch (scene->toolsettings->edge_mode) { + case EDGE_MODE_SELECT: + EM_select_edge(eed, val); + break; case EDGE_MODE_TAG_SEAM: if (val) {eed->seam = 255;} else {eed->seam = 0;} @@ -894,6 +900,8 @@ void edgetag_context_set(Scene *scene, EditEdge *eed, int val) int edgetag_context_check(Scene *scene, EditEdge *eed) { switch (scene->toolsettings->edge_mode) { + case EDGE_MODE_SELECT: + return (eed->f & SELECT) ? 1 : 0; case EDGE_MODE_TAG_SEAM: return eed->seam ? 1 : 0; case EDGE_MODE_TAG_SHARP: @@ -1029,6 +1037,8 @@ int edgetag_shortest_path(Scene *scene, EditMesh *em, EditEdge *source, EditEdge return 1; } +/* *************************************** */ + static void seam_edgehash_insert_face(EdgeHash *ehash, MFace *mf) { BLI_edgehash_insert(ehash, mf->v1, mf->v2, NULL); @@ -1094,7 +1104,7 @@ void seam_mark_clear_tface(Scene *scene, short mode) // XXX if (G.rt == 8) // unwrap_lscm(1); - G.f |= G_DRAWSEAMS; + me->drawflag |= ME_DRAWSEAMS; BIF_undo_push("Mark Seam"); // XXX notifier! object_tface_flags_changed(OBACT, 1); |