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:
authorJoseph Eagar <joeedh@gmail.com>2009-09-28 07:28:28 +0400
committerJoseph Eagar <joeedh@gmail.com>2009-09-28 07:28:28 +0400
commit8ea2904693707209d739928a70072d339c547b84 (patch)
tree24a704241510148805fca790b61cfa48ac600af0
parent2d797f35d804fd86ef079b30f2c83a81a8e38cd5 (diff)
added missing notifyer/depsgraph call to loopcut, fixed tweaking the edge slide operator in the last operator panel, and uncommented a line in the remove doubles op that was making it not work (and tweaked the rna limits a bit there, too).
-rw-r--r--source/blender/editors/mesh/editmesh_tools.c7
-rw-r--r--source/blender/editors/mesh/loopcut.c3
-rw-r--r--source/blender/editors/transform/transform.c35
-rw-r--r--source/blender/editors/transform/transform_ops.c6
4 files changed, 34 insertions, 17 deletions
diff --git a/source/blender/editors/mesh/editmesh_tools.c b/source/blender/editors/mesh/editmesh_tools.c
index 6e5ce92c904..510f6ab464b 100644
--- a/source/blender/editors/mesh/editmesh_tools.c
+++ b/source/blender/editors/mesh/editmesh_tools.c
@@ -483,9 +483,8 @@ static int removedoublesflag_exec(bContext *C, wmOperator *op)
{
Object *obedit= CTX_data_edit_object(C);
EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data));
- /*char msg[100];
-
- int cnt = removedoublesflag(em,1,0,RNA_float_get(op->ptr, "limit"));*/
+ /*char msg[100];*/
+ int cnt = removedoublesflag(em,1,0,RNA_float_get(op->ptr, "limit"));
/*XXX this messes up last operator panel
if(cnt)
@@ -515,7 +514,7 @@ void MESH_OT_remove_doubles(wmOperatorType *ot)
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
- RNA_def_float(ot->srna, "limit", 0.00001f, 0.000001f, 50.0f, "Merge Threshold", "Minimum distance between merged verts", 0.00001f, 10.0f);
+ RNA_def_float(ot->srna, "limit", 0.0001f, 0.000001f, 50.0f, "Merge Threshold", "Minimum distance between merged verts", 0.00001f, 2.0f);
}
// XXX is this needed?
diff --git a/source/blender/editors/mesh/loopcut.c b/source/blender/editors/mesh/loopcut.c
index 1adac71f40e..d1ef4ebc233 100644
--- a/source/blender/editors/mesh/loopcut.c
+++ b/source/blender/editors/mesh/loopcut.c
@@ -265,7 +265,10 @@ static void ringsel_finish(bContext *C, wmOperator *op)
EditMesh *em = BKE_mesh_get_editmesh(lcd->ob->data);
esubdivideflag(lcd->ob, em, SELECT, 0.0f,
0.0f, 0, 1, SUBDIV_SELECT_LOOPCUT);
+
+ DAG_id_flush_update(lcd->ob->data, OB_RECALC_DATA);
}
+ WM_event_add_notifier(C, NC_GEOM|ND_DATA, lcd->ob->data);
}
}
diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c
index ca9981bc590..bc529486085 100644
--- a/source/blender/editors/transform/transform.c
+++ b/source/blender/editors/transform/transform.c
@@ -4069,7 +4069,12 @@ static int createSlideVerts(TransInfo *t)
//short mval[2], mvalo[2];
float labda = 0.0f, totvec=0.0;
- view3d_get_object_project_mat(v3d, t->obedit, projectMat);
+ if (!v3d) {
+ /*ok, let's try to survive this*/
+ Mat4One(projectMat);
+ } else {
+ view3d_get_object_project_mat(v3d, t->obedit, projectMat);
+ }
//mvalo[0] = -1; mvalo[1] = -1;
numsel =0;
@@ -4354,9 +4359,11 @@ static int createSlideVerts(TransInfo *t)
sv->down = swap;
}
- view3d_project_float(t->ar, tempsv->up->v1->co, co, projectMat);
- view3d_project_float(t->ar, tempsv->up->v2->co, co2, projectMat);
-
+ if (v3d) {
+ view3d_project_float(t->ar, tempsv->up->v1->co, co, projectMat);
+ view3d_project_float(t->ar, tempsv->up->v2->co, co2, projectMat);
+ }
+
if (ev == tempsv->up->v1) {
VecSubf(vec, co, co2);
} else {
@@ -4365,9 +4372,11 @@ static int createSlideVerts(TransInfo *t)
VecAddf(start, start, vec);
- view3d_project_float(t->ar, tempsv->down->v1->co, co, projectMat);
- view3d_project_float(t->ar, tempsv->down->v2->co, co2, projectMat);
-
+ if (v3d) {
+ view3d_project_float(t->ar, tempsv->down->v1->co, co, projectMat);
+ view3d_project_float(t->ar, tempsv->down->v2->co, co2, projectMat);
+ }
+
if (ev == tempsv->down->v1) {
VecSubf(vec, co2, co);
} else {
@@ -4520,8 +4529,6 @@ void freeSlideVerts(TransInfo *t)
for (uvlay_idx=0; uvlay_idx<sld->uvlay_tot; uvlay_idx++) {
BLI_ghash_free(sld->uvhash[uvlay_idx], NULL, NULL);
}
- MEM_freeN(sld->slideuv);
- MEM_freeN(sld->uvhash);
suv = sld->suv_last-1;
while (suv >= sld->slideuv) {
@@ -4530,6 +4537,9 @@ void freeSlideVerts(TransInfo *t)
}
suv--;
}
+
+ MEM_freeN(sld->slideuv);
+ MEM_freeN(sld->uvhash);
}
MEM_freeN(sld);
@@ -4703,7 +4713,12 @@ int EdgeSlide(TransInfo *t, short mval[2])
CLAMP(final, -1.0f, 1.0f);
/*do stuff here*/
- doEdgeSlide(t, final);
+ if (t->customData)
+ doEdgeSlide(t, final);
+ else {
+ strcpy(str, "Invalid Edge Selection");
+ t->state = TRANS_CANCEL;
+ }
recalcData(t);
diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c
index b6f8d2c8c22..f369fba79df 100644
--- a/source/blender/editors/transform/transform_ops.c
+++ b/source/blender/editors/transform/transform_ops.c
@@ -554,8 +554,8 @@ void TFM_OT_mirror(struct wmOperatorType *ot)
void TFM_OT_edge_slide(struct wmOperatorType *ot)
{
/* identifiers */
- ot->name = "Tilt";
- ot->description= "Tilt selected control vertices of 3d curve.";
+ ot->name = "Edge Slide";
+ ot->description= "Slide an edge loop along a mesh.";
ot->idname = OP_EDGE_SLIDE;
ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO|OPTYPE_BLOCKING;
@@ -566,7 +566,7 @@ void TFM_OT_edge_slide(struct wmOperatorType *ot)
ot->cancel = transform_cancel;
ot->poll = ED_operator_editmesh;
- RNA_def_float_factor(ot->srna, "value", 0, 0, 1, "Factor", "", 0, 1);
+ RNA_def_float_factor(ot->srna, "value", 0, -1.0f, 1.0f, "Factor", "", -1.0f, 1.0f);
RNA_def_boolean(ot->srna, "mirror", 0, "Mirror Editing", "");
}