diff options
author | Martin Poirier <theeth@yahoo.com> | 2010-01-09 23:42:35 +0300 |
---|---|---|
committer | Martin Poirier <theeth@yahoo.com> | 2010-01-09 23:42:35 +0300 |
commit | a9aea7e6bf08831604080686be757590f89b1dd9 (patch) | |
tree | 70679af27f593288f4942e581af68de81c86a525 /source/blender/editors/transform | |
parent | 30f26a2826188946ad36284470d7e0ec2ec6df11 (diff) |
Edge Crease Transform is back. Now in edge menu (Ctrl-E) with Edge Slide and the rest.
Diffstat (limited to 'source/blender/editors/transform')
-rw-r--r-- | source/blender/editors/transform/transform_conversions.c | 7 | ||||
-rw-r--r-- | source/blender/editors/transform/transform_generics.c | 5 | ||||
-rw-r--r-- | source/blender/editors/transform/transform_ops.c | 23 |
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 */ |