Page MenuHome

last_view_diff

last_view_diff

Index: blender/source/blender/makesdna/DNA_view3d_types.h
===================================================================
RCS file: /cvsroot/bf-blender/blender/source/blender/makesdna/DNA_view3d_types.h,v
retrieving revision 1.32
diff -u -r1.32 DNA_view3d_types.h
--- blender/source/blender/makesdna/DNA_view3d_types.h 8 Jun 2006 18:10:40 -0000 1.32
+++ blender/source/blender/makesdna/DNA_view3d_types.h 5 Jul 2006 02:55:26 -0000
@@ -65,6 +65,16 @@
unsigned int *rect;
} BGpic;
+typedef struct View3D_buff {
+ float viewquat[4];
+ float ofs[3];
+ float camdx, camdy;
+ float pad1[3];
+ int view;
+ int persp;
+ int pad2[2];
+} View3D_buff;
+
typedef struct View3D {
struct SpaceLink *next, *prev;
int spacetype;
@@ -129,8 +139,10 @@
short zbuf, transp, xray;
short flag, flag2;
-
short pad2[3];
+
+ /* back to global view */
+ View3D_buff view_buff;
} View3D;
Index: blender/source/blender/src/toets.c
===================================================================
RCS file: /cvsroot/bf-blender/blender/source/blender/src/toets.c,v
retrieving revision 1.80
diff -u -r1.80 toets.c
--- blender/source/blender/src/toets.c 27 Jun 2006 12:54:16 -0000 1.80
+++ blender/source/blender/src/toets.c 5 Jul 2006 02:55:56 -0000
@@ -125,6 +125,7 @@
float phi, si, q1[4], vec[3];
static int perspo=1;
int preview3d_event= 1;
+ static short firsttime= 1;
if(event==PADENTER) {
if (G.qual == LR_SHIFTKEY) {
@@ -251,6 +252,18 @@
else G.vd->persp=1;
}
else if(event==PAD0) {
+
+ if (firsttime) {
+ firsttime= 0;
+
+ G.vd->view_buff.viewquat[0]= G.vd->viewquat[0];
+ G.vd->view_buff.viewquat[1]= G.vd->viewquat[1];
+ G.vd->view_buff.viewquat[2]= G.vd->viewquat[2];
+ G.vd->view_buff.viewquat[3]= G.vd->viewquat[3];
+ G.vd->view_buff.persp= G.vd->persp;
+ G.vd->view_buff.view= G.vd->view;
+ }
+
if(G.qual==LR_ALTKEY) {
if(oldcamera && is_an_active_object(oldcamera)) {
G.vd->camera= oldcamera;
@@ -277,17 +290,32 @@
G.vd->camera= scene_find_camera(G.scene);
handle_view3d_lock();
}
-
+
+
if(G.vd->camera) {
- G.vd->persp= 2;
- G.vd->view= 0;
- if(((G.qual & LR_CTRLKEY) && (G.qual & LR_ALTKEY)) || (G.qual & LR_SHIFTKEY)) {
- void setcameratoview3d(void); // view.c
- setcameratoview3d();
- DAG_object_flush_update(G.scene, G.scene->camera, OB_RECALC_OB);
- allqueue(REDRAWVIEW3D, 0);
+
+ if (G.vd->persp==2 && G.vd->view==0) {
+
+ G.vd->viewquat[0]= G.vd->view_buff.viewquat[0];
+ G.vd->viewquat[1]= G.vd->view_buff.viewquat[1];
+ G.vd->viewquat[2]= G.vd->view_buff.viewquat[2];
+ G.vd->viewquat[3]= G.vd->view_buff.viewquat[3];
+ G.vd->view= G.vd->view_buff.view;
+ G.vd->persp= G.vd->view_buff.persp;
+ VECCOPY (G.vd->ofs, G.vd->view_buff.ofs);
+ }
+ else {
+ G.vd->persp= 2;
+ G.vd->view= 0;
+ if(((G.qual & LR_CTRLKEY) && (G.qual & LR_ALTKEY)) || (G.qual & LR_SHIFTKEY)) {
+ void setcameratoview3d(void); // view.c
+ setcameratoview3d();
+ DAG_object_flush_update(G.scene, G.scene->camera, OB_RECALC_OB);
+ allqueue(REDRAWVIEW3D, 0);
+ }
}
}
+
}
else if(event==PAD9) {
countall();
@@ -326,6 +354,17 @@
}
if(G.vd->persp<2) perspo= G.vd->persp;
+
+ }
+
+ if (event!=PAD0) {
+
+ G.vd->view_buff.viewquat[0]= G.vd->viewquat[0];
+ G.vd->view_buff.viewquat[1]= G.vd->viewquat[1];
+ G.vd->view_buff.viewquat[2]= G.vd->viewquat[2];
+ G.vd->view_buff.viewquat[3]= G.vd->viewquat[3];
+ G.vd->view_buff.persp= G.vd->persp;
+ G.vd->view_buff.view= G.vd->view;
}
if(preview3d_event)
Index: blender/source/blender/src/space.c
===================================================================
RCS file: /cvsroot/bf-blender/blender/source/blender/src/space.c,v
retrieving revision 1.364
diff -u -r1.364 space.c
--- blender/source/blender/src/space.c 28 Jun 2006 20:06:48 -0000 1.364
+++ blender/source/blender/src/space.c 5 Jul 2006 02:56:14 -0000
@@ -1294,6 +1294,7 @@
G.vd->ofs[1]= -curs[1];
G.vd->ofs[2]= -curs[2];
scrarea_queue_winredraw(curarea);
+ VECCOPY (G.vd->view_buff.ofs, G.vd->ofs);
}
break;
@@ -1971,6 +1972,7 @@
if(G.vd->persp==2) G.vd->persp= 1;
scrarea_queue_winredraw(curarea);
+ persptoetsen(event);
}
}
break;
@@ -2067,6 +2069,13 @@
vd->gridflag |= V3D_SHOW_Y;
vd->gridflag |= V3D_SHOW_FLOOR;
vd->gridflag &= ~V3D_SHOW_Z;
+
+ vd->view_buff.viewquat[0]= vd->viewquat[0];
+ vd->view_buff.viewquat[1]= vd->viewquat[1];
+ vd->view_buff.viewquat[2]= vd->viewquat[2];
+ vd->view_buff.viewquat[3]= vd->viewquat[3];
+ vd->view_buff.persp= vd->persp;
+ vd->view_buff.view= vd->view;
}
Index: blender/source/blender/src/view.c
===================================================================
RCS file: /cvsroot/bf-blender/blender/source/blender/src/view.c,v
retrieving revision 1.67
diff -u -r1.67 view.c
--- blender/source/blender/src/view.c 20 Jun 2006 16:52:11 -0000 1.67
+++ blender/source/blender/src/view.c 5 Jul 2006 02:56:35 -0000
@@ -783,6 +783,14 @@
if( !(get_mbut() & (L_MOUSE|M_MOUSE))) break;
}
+ G.vd->view_buff.viewquat[0]= G.vd->viewquat[0];
+ G.vd->view_buff.viewquat[1]= G.vd->viewquat[1];
+ G.vd->view_buff.viewquat[2]= G.vd->viewquat[2];
+ G.vd->view_buff.viewquat[3]= G.vd->viewquat[3];
+ G.vd->view_buff.persp= G.vd->persp;
+ G.vd->view_buff.view= G.vd->view;
+ VECCOPY (G.vd->view_buff.ofs, G.vd->ofs);
+
if(preview3d_event)
BIF_view3d_previewrender_signal(curarea, PR_DBASE|PR_DISPRECT);
else

File Metadata

Mime Type
text/x-diff
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
be/ed/082dfa9b241dfe8196c28e7ef991

Event Timeline