[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17952] branches/blender2.5/blender/source /blender/editors/space_view3d: 2.5

Ton Roosendaal ton at blender.org
Fri Dec 19 18:14:02 CET 2008


Revision: 17952
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17952
Author:   ton
Date:     2008-12-19 18:14:02 +0100 (Fri, 19 Dec 2008)

Log Message:
-----------
2.5

View3d: middle mouse rotate, translate, zoom.
(using default mouse map)

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/editors/space_view3d/Makefile
    branches/blender2.5/blender/source/blender/editors/space_view3d/SConscript
    branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/space_view3d.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_edit.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_intern.h

Added Paths:
-----------
    branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_ops.c

Modified: branches/blender2.5/blender/source/blender/editors/space_view3d/Makefile
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_view3d/Makefile	2008-12-19 16:36:15 UTC (rev 17951)
+++ branches/blender2.5/blender/source/blender/editors/space_view3d/Makefile	2008-12-19 17:14:02 UTC (rev 17952)
@@ -49,6 +49,7 @@
 CPPFLAGS += -I../../imbuf
 CPPFLAGS += -I../../python
 CPPFLAGS += -I../../gpu
+CPPFLAGS += -I../../makesrna
 CPPFLAGS += -I../../render/extern/include
 CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
 

Modified: branches/blender2.5/blender/source/blender/editors/space_view3d/SConscript
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_view3d/SConscript	2008-12-19 16:36:15 UTC (rev 17951)
+++ branches/blender2.5/blender/source/blender/editors/space_view3d/SConscript	2008-12-19 17:14:02 UTC (rev 17952)
@@ -6,6 +6,6 @@
 incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
 incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
 incs += ' ../../render/extern/include #/intern/guardedalloc #intern/bmfont'
-incs += ' ../../gpu'
+incs += ' ../../gpu ../../makesrna'
 
 env.BlenderLib ( 'bf_editors_space_view3d', sources, Split(incs), [], libtype=['core','intern'], priority=[35, 40] )

Modified: branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c	2008-12-19 16:36:15 UTC (rev 17951)
+++ branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c	2008-12-19 17:14:02 UTC (rev 17952)
@@ -1202,30 +1202,30 @@
 
 static void mesh_foreachScreenVert__mapFunc(void *userData, int index, float *co, float *no_f, short *no_s)
 {
-	struct { void (*func)(void *userData, EditVert *eve, int x, int y, int index); void *userData; int clipVerts; float pmat[4][4], vmat[4][4]; } *data = userData;
-	ARegion *ar= NULL; // XXX
-	View3D *v3d= NULL; // XXX
+	struct { void (*func)(void *userData, EditVert *eve, int x, int y, int index); void *userData; ARegion *ar; View3D *v3d; int clipVerts; float pmat[4][4], vmat[4][4]; } *data = userData;
 	EditVert *eve = EM_get_vert_for_index(index);
 	short s[2];
 
 	if (eve->h==0) {
 		if (data->clipVerts) {
-			view3d_project_short_clip(ar, v3d, co, s, data->pmat, data->vmat);
+			view3d_project_short_clip(data->ar, data->v3d, co, s, data->pmat, data->vmat);
 		} else {
-			view3d_project_short_noclip(ar, co, s, data->pmat);
+			view3d_project_short_noclip(data->ar, co, s, data->pmat);
 		}
 
 		data->func(data->userData, eve, s[0], s[1], index);
 	}
 }
-void mesh_foreachScreenVert(void (*func)(void *userData, EditVert *eve, int x, int y, int index), void *userData, int clipVerts)
+
+void mesh_foreachScreenVert(ARegion *ar, View3D *v3d, void (*func)(void *userData, EditVert *eve, int x, int y, int index), void *userData, int clipVerts)
 {
-	struct { void (*func)(void *userData, EditVert *eve, int x, int y, int index); void *userData; int clipVerts; float pmat[4][4], vmat[4][4]; } data;
-	View3D *v3d= NULL; // XXX
+	struct { void (*func)(void *userData, EditVert *eve, int x, int y, int index); void *userData; ARegion *ar; View3D *v3d; int clipVerts; float pmat[4][4], vmat[4][4]; } data;
 	DerivedMesh *dm = editmesh_get_derived_cage(CD_MASK_BAREMESH);
 
 	data.func = func;
 	data.userData = userData;
+	data.ar= ar;
+	data.v3d= v3d;
 	data.clipVerts = clipVerts;
 
 	view3d_get_object_project_mat(v3d, G.obedit, data.pmat, data.vmat);
@@ -1239,23 +1239,21 @@
 
 static void mesh_foreachScreenEdge__mapFunc(void *userData, int index, float *v0co, float *v1co)
 {
-	struct { void (*func)(void *userData, EditEdge *eed, int x0, int y0, int x1, int y1, int index); void *userData; int clipVerts; float pmat[4][4], vmat[4][4]; } *data = userData;
-	ARegion *ar= NULL; // XXX
-	View3D *v3d= NULL; // XXX
+	struct { void (*func)(void *userData, EditEdge *eed, int x0, int y0, int x1, int y1, int index); void *userData; ARegion *ar; View3D *v3d; int clipVerts; float pmat[4][4], vmat[4][4]; } *data = userData;
 	EditEdge *eed = EM_get_edge_for_index(index);
 	short s[2][2];
 
 	if (eed->h==0) {
 		if (data->clipVerts==1) {
-			view3d_project_short_clip(ar, v3d, v0co, s[0], data->pmat, data->vmat);
-			view3d_project_short_clip(ar, v3d, v1co, s[1], data->pmat, data->vmat);
+			view3d_project_short_clip(data->ar, data->v3d, v0co, s[0], data->pmat, data->vmat);
+			view3d_project_short_clip(data->ar, data->v3d, v1co, s[1], data->pmat, data->vmat);
 		} else {
-			view3d_project_short_noclip(ar, v0co, s[0], data->pmat);
-			view3d_project_short_noclip(ar, v1co, s[1], data->pmat);
+			view3d_project_short_noclip(data->ar, v0co, s[0], data->pmat);
+			view3d_project_short_noclip(data->ar, v1co, s[1], data->pmat);
 
 			if (data->clipVerts==2) {
-                if (!(s[0][0]>=0 && s[0][1]>= 0 && s[0][0]<ar->winx && s[0][1]<ar->winy)) 
-					if (!(s[1][0]>=0 && s[1][1]>= 0 && s[1][0]<ar->winx && s[1][1]<ar->winy)) 
+                if (!(s[0][0]>=0 && s[0][1]>= 0 && s[0][0]<data->ar->winx && s[0][1]<data->ar->winy)) 
+					if (!(s[1][0]>=0 && s[1][1]>= 0 && s[1][0]<data->ar->winx && s[1][1]<data->ar->winy)) 
 						return;
 			}
 		}
@@ -1263,13 +1261,14 @@
 		data->func(data->userData, eed, s[0][0], s[0][1], s[1][0], s[1][1], index);
 	}
 }
-void mesh_foreachScreenEdge(void (*func)(void *userData, EditEdge *eed, int x0, int y0, int x1, int y1, int index), void *userData, int clipVerts)
+void mesh_foreachScreenEdge(ARegion *ar, View3D *v3d, void (*func)(void *userData, EditEdge *eed, int x0, int y0, int x1, int y1, int index), void *userData, int clipVerts)
 {
-	struct { void (*func)(void *userData, EditEdge *eed, int x0, int y0, int x1, int y1, int index); void *userData; int clipVerts; float pmat[4][4], vmat[4][4]; } data;
-	View3D *v3d= NULL; // XXX
+	struct { void (*func)(void *userData, EditEdge *eed, int x0, int y0, int x1, int y1, int index); void *userData; ARegion *ar; View3D *v3d; int clipVerts; float pmat[4][4], vmat[4][4]; } data;
 	DerivedMesh *dm = editmesh_get_derived_cage(CD_MASK_BAREMESH);
 
 	data.func = func;
+	data.ar= ar;
+	data.v3d= v3d;
 	data.userData = userData;
 	data.clipVerts = clipVerts;
 
@@ -1284,25 +1283,24 @@
 
 static void mesh_foreachScreenFace__mapFunc(void *userData, int index, float *cent, float *no)
 {
-	struct { void (*func)(void *userData, EditFace *efa, int x, int y, int index); void *userData; float pmat[4][4], vmat[4][4]; } *data = userData;
-	ARegion *ar= NULL; // XXX
-	View3D *v3d= NULL; // XXX
+	struct { void (*func)(void *userData, EditFace *efa, int x, int y, int index); void *userData; ARegion *ar; View3D *v3d; float pmat[4][4], vmat[4][4]; } *data = userData;
 	EditFace *efa = EM_get_face_for_index(index);
 	short s[2];
 
 	if (efa && efa->h==0 && efa->fgonf!=EM_FGON) {
-		view3d_project_short_clip(ar, v3d, cent, s, data->pmat, data->vmat);
+		view3d_project_short_clip(data->ar, data->v3d, cent, s, data->pmat, data->vmat);
 
 		data->func(data->userData, efa, s[0], s[1], index);
 	}
 }
-void mesh_foreachScreenFace(void (*func)(void *userData, EditFace *efa, int x, int y, int index), void *userData)
+void mesh_foreachScreenFace(ARegion *ar, View3D *v3d, void (*func)(void *userData, EditFace *efa, int x, int y, int index), void *userData)
 {
-	struct { void (*func)(void *userData, EditFace *efa, int x, int y, int index); void *userData; float pmat[4][4], vmat[4][4]; } data;
+	struct { void (*func)(void *userData, EditFace *efa, int x, int y, int index); void *userData; ARegion *ar; View3D *v3d; float pmat[4][4], vmat[4][4]; } data;
 	DerivedMesh *dm = editmesh_get_derived_cage(CD_MASK_BAREMESH);
-	View3D *v3d= NULL; // XXX
 
 	data.func = func;
+	data.ar= ar;
+	data.v3d= v3d;
 	data.userData = userData;
 
 	view3d_get_object_project_mat(v3d, G.obedit, data.pmat, data.vmat);
@@ -1314,10 +1312,8 @@
 	dm->release(dm);
 }
 
-void nurbs_foreachScreenVert(void (*func)(void *userData, Nurb *nu, BPoint *bp, BezTriple *bezt, int beztindex, int x, int y), void *userData)
+void nurbs_foreachScreenVert(ARegion *ar, View3D *v3d, void (*func)(void *userData, Nurb *nu, BPoint *bp, BezTriple *bezt, int beztindex, int x, int y), void *userData)
 {
-	ARegion *ar= NULL; // XXX
-	View3D *v3d= NULL; // XXX
 	float pmat[4][4], vmat[4][4];
 	short s[2];
 	Nurb *nu;
@@ -1375,7 +1371,7 @@
 
 static void draw_dm_face_normals__mapFunc(void *userData, int index, float *cent, float *no)
 {
-	Scene *scene= NULL; // XXX
+	Scene *scene= (Scene *)userData;
 	EditFace *efa = EM_get_face_for_index(index);
 
 	if (efa->h==0 && efa->fgonf!=EM_FGON) {
@@ -1385,9 +1381,10 @@
 					cent[2] + no[2]*scene->editbutsize);
 	}
 }
-static void draw_dm_face_normals(DerivedMesh *dm) {
+static void draw_dm_face_normals(Scene *scene, DerivedMesh *dm) 
+{
 	glBegin(GL_LINES);
-	dm->foreachMappedFaceCenter(dm, draw_dm_face_normals__mapFunc, 0);
+	dm->foreachMappedFaceCenter(dm, draw_dm_face_normals__mapFunc, scene);
 	glEnd();
 }
 
@@ -1409,7 +1406,7 @@
 
 static void draw_dm_vert_normals__mapFunc(void *userData, int index, float *co, float *no_f, short *no_s)
 {
-	Scene *scene= NULL; // XXX
+	Scene *scene= (Scene *)userData;
 	EditVert *eve = EM_get_vert_for_index(index);
 
 	if (eve->h==0) {
@@ -1426,9 +1423,10 @@
 		}
 	}
 }
-static void draw_dm_vert_normals(DerivedMesh *dm) {
+static void draw_dm_vert_normals(Scene *scene, DerivedMesh *dm) 
+{
 	glBegin(GL_LINES);
-	dm->foreachMappedVert(dm, draw_dm_vert_normals__mapFunc, NULL);
+	dm->foreachMappedVert(dm, draw_dm_vert_normals__mapFunc, scene);
 	glEnd();
 }
 
@@ -2106,11 +2104,11 @@
 
 		if(G.f & G_DRAWNORMALS) {
 			UI_ThemeColor(TH_NORMAL);
-			draw_dm_face_normals(cageDM);
+			draw_dm_face_normals(scene, cageDM);
 		}
 		if(G.f & G_DRAW_VNORMALS) {
 			UI_ThemeColor(TH_NORMAL);
-			draw_dm_vert_normals(cageDM);
+			draw_dm_vert_normals(scene, cageDM);
 		}
 
 		if(G.f & (G_DRAW_EDGELEN|G_DRAW_FACEAREA|G_DRAW_EDGEANG))
@@ -2978,7 +2976,7 @@
 			break;
 		case PART_DRAW_BB:
 			if(v3d->camera==0 && part->bb_ob==0){
-// XXX				error("Billboards need an active camera or a target object!");
+				printf("Billboards need an active camera or a target object!\n");
 
 				draw_as=part->draw_as=PART_DRAW_DOT;
 


@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list