Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2009-01-31 16:30:56 +0300
committerTon Roosendaal <ton@blender.org>2009-01-31 16:30:56 +0300
commit86a2a0f6947feab469a108eb7eb875fa5637d036 (patch)
treeff033132556d35991a488e6dc98807fa5b06b625 /source/blender/editors/mesh/editface.c
parent607a56cb7a0e5a7fef2214d60a723dd67e8209ab (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.c12
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);