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:
authorCampbell Barton <ideasman42@gmail.com>2006-03-27 09:28:36 +0400
committerCampbell Barton <ideasman42@gmail.com>2006-03-27 09:28:36 +0400
commit75ce4ca859f7949193015462b5a203137656a7de (patch)
tree72e93a8148a3bb8733effb03a5980b9588b59894 /source/blender/src/transform_generics.c
parent7b1d69a35c80cffef4965616731deb68760b6fb2 (diff)
Added rotate about centre for active Vert/Edge/Face in mesh editmode. also works for getting the V/E/F normal. Means we can now rotate about the last selected edge.
Diffstat (limited to 'source/blender/src/transform_generics.c')
-rwxr-xr-xsource/blender/src/transform_generics.c26
1 files changed, 25 insertions, 1 deletions
diff --git a/source/blender/src/transform_generics.c b/source/blender/src/transform_generics.c
index ae5b0704578..87113427dad 100755
--- a/source/blender/src/transform_generics.c
+++ b/source/blender/src/transform_generics.c
@@ -727,6 +727,31 @@ void calculateCenter(TransInfo *t)
break;
case V3D_ACTIVE:
/* set median, and if if if... do object center */
+
+ /* EDIT MODE ACTIVE FACE */
+ if (G.obedit && G.obedit->type == OB_MESH && G.editMesh->selected.last) {
+ EditSelection *ese= G.editMesh->selected.last;
+ EditFace *efa;
+ EditEdge *eed;
+ EditVert *eve;
+ float vec[3]= {0,0,0};
+ if (ese->type==EDITVERT) {
+ eve= ese->data;
+ VecCopyf(vec, eve->co);
+ } else if (ese->type==EDITEDGE) {
+ eed= ese->data;
+ VecAddf(vec, eed->v1->co, eed->v2->co);
+ VecMulf(vec, 0.5);
+ } else if (ese->type==EDITFACE) {
+ efa= ese->data;
+ VecCopyf(vec, efa->cent);
+ }
+ VecCopyf(t->center, vec);
+ projectIntView(t, t->center, t->center2d);
+ break;
+ }
+ /* END EDIT MODE ACTIVE FACE */
+
calculateCenterMedian(t);
if((t->flag & (T_EDIT|T_POSE))==0) {
Object *ob= OBACT;
@@ -735,7 +760,6 @@ void calculateCenter(TransInfo *t)
projectIntView(t, t->center, t->center2d);
}
}
-
}
/* setting constraint center */