diff options
author | Ton Roosendaal <ton@blender.org> | 2003-07-12 00:02:52 +0400 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2003-07-12 00:02:52 +0400 |
commit | 60dddf84abe571ef39f0f40ae9ef51ef0681115a (patch) | |
tree | 92a63e357c38fb0d55c1ce995f96324d6ab79574 /source/blender/src/view.c | |
parent | 94f8098660e74de2537ac59d812646e7bb815f47 (diff) |
* selecting objects has a different frontbuffer drawing handling now.
instead of drawing everything again, in all windows, it restricts to
the active and previous active object. when there are more objects to
be redrawn, it does a normal swapbuffers.
Result is it all redraws & selects a lot faster in complex scenes
* Little fix in "BallTable" routine when moving mouse vertical out of
the 3d window.
Diffstat (limited to 'source/blender/src/view.c')
-rw-r--r-- | source/blender/src/view.c | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/source/blender/src/view.c b/source/blender/src/view.c index 590626088e0..f878fb5b51b 100644 --- a/source/blender/src/view.c +++ b/source/blender/src/view.c @@ -453,6 +453,7 @@ void viewmove(int mode) si= sqrt(dvec[0]*dvec[0]+ dvec[1]*dvec[1]+ dvec[2]*dvec[2]); si/= (2.0*TRACKBALLSIZE); + /* is there an acceptable solution? (180 degrees limitor) */ if(si<1.0) { Crossf(q1+1, firstvec, newvec); @@ -467,20 +468,20 @@ void viewmove(int mode) q1[3]*= si; QuatMul(G.vd->viewquat, q1, oldquat); - } - - if( (U.flag & TRACKBALL)==0 ) { - - /* rotate around z-axis (mouse x moves) */ - - phi= 2*(mval[0]-mvalball[0]); - phi/= (float)curarea->winx; - si= sin(phi); - q1[0]= cos(phi); - q1[1]= q1[2]= 0.0; - q1[3]= si; + + if( (U.flag & TRACKBALL)==0 ) { - QuatMul(G.vd->viewquat, G.vd->viewquat, q1); + /* rotate around z-axis (mouse x moves) */ + + phi= 2*(mval[0]-mvalball[0]); + phi/= (float)curarea->winx; + si= sin(phi); + q1[0]= cos(phi); + q1[1]= q1[2]= 0.0; + q1[3]= si; + + QuatMul(G.vd->viewquat, G.vd->viewquat, q1); + } } } else if(mode==1) { /* translate */ |