Made view3d "home" and "local view" and "zoom to selection" (dot key) doing

all the same. The latter two didnt take aspect ratio of windows into account
This commit is contained in:
Ton Roosendaal 2004-11-18 14:34:30 +00:00
parent b0db81b0df
commit a0de0d084e

@ -932,7 +932,7 @@ void initlocalview()
afm[0]= (max[0]-min[0]);
afm[1]= (max[1]-min[1]);
afm[2]= (max[2]-min[2]);
size= MAX3(afm[0], afm[1], afm[2]);
size= 0.7*MAX3(afm[0], afm[1], afm[2]);
if(size<=0.01) size= 0.01;
}
@ -946,6 +946,13 @@ void initlocalview()
G.vd->dist= size;
// correction for window aspect ratio
if(curarea->winy>2 && curarea->winx>2) {
size= (float)curarea->winx/(float)curarea->winy;
if(size<1.0) size= 1.0/size;
G.vd->dist*= size;
}
if(G.vd->persp>1) {
G.vd->persp= 1;
@ -1009,21 +1016,25 @@ void centreview() /* like a localview without local! */
afm[0]= (max[0]-min[0]);
afm[1]= (max[1]-min[1]);
afm[2]= (max[2]-min[2]);
size= MAX3(afm[0], afm[1], afm[2]);
size= 0.7*MAX3(afm[0], afm[1], afm[2]);
if(size<=0.01) size= 0.01;
G.vd->ofs[0]= -(min[0]+max[0])/2.0;
G.vd->ofs[1]= -(min[1]+max[1])/2.0;
G.vd->ofs[2]= -(min[2]+max[2])/2.0;
G.vd->dist= size;
// correction for window aspect ratio
if(curarea->winy>2 && curarea->winx>2) {
size= (float)curarea->winx/(float)curarea->winy;
if(size<1.0) size= 1.0/size;
G.vd->dist*= size;
}
if(G.vd->persp>1) {
G.vd->persp= 1;
}
G.vd->cursor[0]= -G.vd->ofs[0];
@ -1121,7 +1132,7 @@ void view3d_home(int centre)
afm[0]= (max[0]-min[0]);
afm[1]= (max[1]-min[1]);
afm[2]= (max[2]-min[2]);
size= MAX3(afm[0], afm[1], afm[2]);
size= 0.7*MAX3(afm[0], afm[1], afm[2]);
if(size==0.0) ok= 0;
if(ok) {