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>2007-03-24 14:56:10 +0300
committerTon Roosendaal <ton@blender.org>2007-03-24 14:56:10 +0300
commit796c87e86950c9c456871b833d7f50fa19b0645d (patch)
tree705f5c2b8206af54f42ad5694911a402c5dc8ced
parent1dcb99dce3c7049b0adf479ba22eae30536db8e8 (diff)
Bugfix #6435
New option "rotate around selection" failed in editmode, when nothing was selected. Function calculateCenterMedian() missed that case. Also added some zero initializing in code.
-rw-r--r--source/blender/src/space.c2
-rwxr-xr-xsource/blender/src/transform_generics.c8
-rw-r--r--source/blender/src/view.c2
3 files changed, 9 insertions, 3 deletions
diff --git a/source/blender/src/space.c b/source/blender/src/space.c
index 9e3cb9a6520..b33b0524bbf 100644
--- a/source/blender/src/space.c
+++ b/source/blender/src/space.c
@@ -3261,7 +3261,7 @@ void drawinfospace(ScrArea *sa, void *spacedata)
uiDefButBitI(block, TOG, USER_ORBIT_SELECTION, B_DRAWINFO, "Around Selection",
(xpos+edgsp+mpref+(2*spref)+(3*midsp)+(mpref/2)),y2,(mpref/2),buth,
&(U.uiflag), 0, 0, 0, 0,
- "Keep the center of selection in place when orbiting the views");
+ "Use selection as the orbiting center");
uiBlockEndAlign(block);
diff --git a/source/blender/src/transform_generics.c b/source/blender/src/transform_generics.c
index 10e1e8a704c..d445603e1ed 100755
--- a/source/blender/src/transform_generics.c
+++ b/source/blender/src/transform_generics.c
@@ -482,6 +482,10 @@ void initTrans (TransInfo *t)
t->vec[1] =
t->vec[2] = 0.0f;
+ t->center[0] =
+ t->center[1] =
+ t->center[2] = 0.0f;
+
Mat3One(t->mat);
t->spacetype = curarea->spacetype;
@@ -678,6 +682,7 @@ void calculateCenterMedian(TransInfo *t)
{
float partial[3] = {0.0f, 0.0f, 0.0f};
int i;
+
for(i = 0; i < t->total; i++) {
if (t->data[i].flag & TD_SELECTED) {
VecAddf(partial, partial, t->data[i].center);
@@ -690,7 +695,8 @@ void calculateCenterMedian(TransInfo *t)
break;
}
}
- VecMulf(partial, 1.0f / i);
+ if(i)
+ VecMulf(partial, 1.0f / i);
VECCOPY(t->center, partial);
calculateCenter2D(t);
diff --git a/source/blender/src/view.c b/source/blender/src/view.c
index a5f8015f9cc..ad8aa2bd38a 100644
--- a/source/blender/src/view.c
+++ b/source/blender/src/view.c
@@ -534,7 +534,7 @@ void viewmove(int mode)
Object *ob = OBACT;
float firstvec[3], newvec[3], dvec[3];
float reverse, oldquat[4], q1[4], si, phi, dist0;
- float ofs[3], obofs[3];
+ float ofs[3], obofs[3]= {0.0f, 0.0f, 0.0f};
int firsttime=1;
short mvalball[2], mval[2], mvalo[2];
short use_sel = 0;