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:
authorMartin Poirier <theeth@yahoo.com>2010-01-09 23:42:35 +0300
committerMartin Poirier <theeth@yahoo.com>2010-01-09 23:42:35 +0300
commita9aea7e6bf08831604080686be757590f89b1dd9 (patch)
tree70679af27f593288f4942e581af68de81c86a525 /source/blender/editors
parent30f26a2826188946ad36284470d7e0ec2ec6df11 (diff)
Edge Crease Transform is back. Now in edge menu (Ctrl-E) with Edge Slide and the rest.
Diffstat (limited to 'source/blender/editors')
-rw-r--r--source/blender/editors/transform/transform_conversions.c7
-rw-r--r--source/blender/editors/transform/transform_generics.c5
-rw-r--r--source/blender/editors/transform/transform_ops.c23
3 files changed, 31 insertions, 4 deletions
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c
index 822c0e5a961..7a89765fef2 100644
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@ -332,7 +332,7 @@ static void createTransTexspace(bContext *C, TransInfo *t)
/* ********************* edge (for crease) ***** */
static void createTransEdge(bContext *C, TransInfo *t) {
-#if 0 // TRANSFORM_FIX_ME
+ EditMesh *em = ((Mesh *)t->obedit->data)->edit_mesh;
TransData *td = NULL;
EditEdge *eed;
float mtx[3][3], smtx[3][3];
@@ -390,7 +390,6 @@ static void createTransEdge(bContext *C, TransInfo *t) {
td++;
}
}
-#endif
}
/* ********************* pose mode ************* */
@@ -5148,11 +5147,11 @@ void createTransData(bContext *C, TransInfo *t)
Scene *scene = CTX_data_scene(C);
Object *ob = OBACT;
- if (t->options == CTX_TEXTURE) {
+ if (t->options & CTX_TEXTURE) {
t->flag |= T_TEXTURE;
createTransTexspace(C, t);
}
- else if (t->options == CTX_EDGE) {
+ else if (t->options & CTX_EDGE) {
t->ext = NULL;
t->flag |= T_EDIT;
createTransEdge(C, t);
diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c
index 061b2adbd79..3be863fc3f7 100644
--- a/source/blender/editors/transform/transform_generics.c
+++ b/source/blender/editors/transform/transform_generics.c
@@ -919,6 +919,11 @@ int initTransInfo (bContext *C, TransInfo *t, wmOperator *op, wmEvent *event)
t->flag |= T_MODAL;
}
+ /* Crease needs edge flag */
+ if (t->mode == TFM_CREASE) {
+ t->options |= CTX_EDGE;
+ }
+
t->spacetype = sa->spacetype;
if(t->spacetype == SPACE_VIEW3D)
{
diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c
index 1ef0bdb0e05..f3789880ce9 100644
--- a/source/blender/editors/transform/transform_ops.c
+++ b/source/blender/editors/transform/transform_ops.c
@@ -67,6 +67,7 @@ char OP_TILT[] = "TRANSFORM_OT_tilt";
char OP_TRACKBALL[] = "TRANSFORM_OT_trackball";
char OP_MIRROR[] = "TRANSFORM_OT_mirror";
char OP_EDGE_SLIDE[] = "TRANSFORM_OT_edge_slide";
+char OP_EDGE_CREASE[] = "TRANSFORM_OT_edge_crease";
char OP_SEQ_SLIDE[] = "TRANSFORM_OT_seq_slide";
void TRANSFORM_OT_translate(struct wmOperatorType *ot);
@@ -80,6 +81,7 @@ void TRANSFORM_OT_tilt(struct wmOperatorType *ot);
void TRANSFORM_OT_trackball(struct wmOperatorType *ot);
void TRANSFORM_OT_mirror(struct wmOperatorType *ot);
void TRANSFORM_OT_edge_slide(struct wmOperatorType *ot);
+void TRANSFORM_OT_edge_crease(struct wmOperatorType *ot);
void TRANSFORM_OT_seq_slide(struct wmOperatorType *ot);
TransformModeItem transform_modes[] =
@@ -95,6 +97,7 @@ TransformModeItem transform_modes[] =
{OP_TRACKBALL, TFM_TRACKBALL, TRANSFORM_OT_trackball},
{OP_MIRROR, TFM_MIRROR, TRANSFORM_OT_mirror},
{OP_EDGE_SLIDE, TFM_EDGE_SLIDE, TRANSFORM_OT_edge_slide},
+ {OP_EDGE_CREASE, TFM_CREASE, TRANSFORM_OT_edge_crease},
{OP_SEQ_SLIDE, TFM_SEQ_SLIDE, TRANSFORM_OT_seq_slide},
{NULL, 0}
};
@@ -697,6 +700,26 @@ void TRANSFORM_OT_edge_slide(struct wmOperatorType *ot)
Properties_Snapping(ot, 0, 0);
}
+void TRANSFORM_OT_edge_crease(struct wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Edge Crease";
+ ot->description= "Change the crease of edges.";
+ ot->idname = OP_EDGE_CREASE;
+ ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO|OPTYPE_BLOCKING;
+
+ /* api callbacks */
+ ot->invoke = transform_invoke;
+ ot->exec = transform_exec;
+ ot->modal = transform_modal;
+ ot->cancel = transform_cancel;
+ ot->poll = ED_operator_editmesh;
+
+ RNA_def_float_factor(ot->srna, "value", 0, -1.0f, 1.0f, "Factor", "", -1.0f, 1.0f);
+
+ Properties_Snapping(ot, 0, 0);
+}
+
void TRANSFORM_OT_seq_slide(struct wmOperatorType *ot)
{
/* identifiers */