[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [22278] branches/bmesh/blender/source/ blender/editors/space_view3d/drawobject.c: fixed non-backbuffered ( wireframe) circle/border select tools.

Joseph Eagar joeedh at gmail.com
Thu Aug 6 23:22:43 CEST 2009


Revision: 22278
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=22278
Author:   joeedh
Date:     2009-08-06 23:22:42 +0200 (Thu, 06 Aug 2009)

Log Message:
-----------
fixed non-backbuffered (wireframe) circle/border select tools.  need to remeber to port this over to the 2.5 branch too.

Modified Paths:
--------------
    branches/bmesh/blender/source/blender/editors/space_view3d/drawobject.c

Modified: branches/bmesh/blender/source/blender/editors/space_view3d/drawobject.c
===================================================================
--- branches/bmesh/blender/source/blender/editors/space_view3d/drawobject.c	2009-08-06 20:51:50 UTC (rev 22277)
+++ branches/bmesh/blender/source/blender/editors/space_view3d/drawobject.c	2009-08-06 21:22:42 UTC (rev 22278)
@@ -1284,11 +1284,16 @@
 
 	if (!BM_TestHFlag(eve, BM_HIDDEN)) {
 		short s[2]= {IS_CLIPPED, 0};
+		float co2[3];
 
+		VECCOPY(co2, co);
+
+		MTC_Mat4MulVecfl(data->vc.obedit->obmat, co2);
+
 		if (data->clipVerts) {
-			view3d_project_short_clip(data->vc.ar, co, s);
+			project_short(data->vc.ar, co2, s);
 		} else {
-			view3d_project_short_noclip(data->vc.ar, co, s);
+			project_short_noclip(data->vc.ar, co2, s);
 		}
 
 		if (s[0]!=IS_CLIPPED)
@@ -1318,14 +1323,21 @@
 	struct { void (*func)(void *userData, BMEdge *eed, int x0, int y0, int x1, int y1, int index); void *userData; ViewContext vc; int clipVerts; float pmat[4][4], vmat[4][4]; } *data = userData;
 	BMEdge *eed = EDBM_get_edge_for_index(data->vc.em, index);
 	short s[2][2];
+	float v1_co[3], v2_co[3];
+	
+	VECCOPY(v1_co, v0co);
+	VECCOPY(v2_co, v1co);
 
+	MTC_Mat4MulVecfl(data->vc.obedit->obmat, v1_co);
+	MTC_Mat4MulVecfl(data->vc.obedit->obmat, v2_co);
+
 	if (!BM_TestHFlag(eed, BM_HIDDEN)) {
 		if (data->clipVerts==1) {
-			view3d_project_short_clip(data->vc.ar, v0co, s[0]);
-			view3d_project_short_clip(data->vc.ar, v1co, s[1]);
+			project_short(data->vc.ar, v1_co, s[0]);
+			project_short(data->vc.ar, v2_co, s[1]);
 		} else {
-			view3d_project_short_noclip(data->vc.ar, v0co, s[0]);
-			view3d_project_short_noclip(data->vc.ar, v1co, s[1]);
+			project_short_noclip(data->vc.ar, v1_co, s[0]);
+			project_short_noclip(data->vc.ar, v2_co, s[1]);
 
 			if (data->clipVerts==2) {
                 if (!(s[0][0]>=0 && s[0][1]>= 0 && s[0][0]<data->vc.ar->winx && s[0][1]<data->vc.ar->winy)) 
@@ -1362,7 +1374,8 @@
 	short s[2];
 
 	if (efa && !BM_TestHFlag(efa, BM_HIDDEN)) {
-		view3d_project_short_clip(data->vc.ar, cent, s);
+		MTC_Mat4MulVecfl(data->vc.obedit->obmat, cent);
+		project_short(data->vc.ar, cent, s);
 
 		data->func(data->userData, efa, s[0], s[1], index);
 	}





More information about the Bf-blender-cvs mailing list