[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [40515] trunk/blender/source/blender/ editors/space_view3d/view3d_view.c: svn merge ^/branches/bmesh/ blender -r40512:40513

Campbell Barton ideasman42 at gmail.com
Sat Sep 24 13:10:54 CEST 2011


Revision: 40515
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=40515
Author:   campbellbarton
Date:     2011-09-24 11:10:53 +0000 (Sat, 24 Sep 2011)
Log Message:
-----------
svn merge ^/branches/bmesh/blender -r40512:40513

Revision Links:
--------------
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=40512

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_view3d/view3d_view.c

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_view.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_view.c	2011-09-24 11:03:52 UTC (rev 40514)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_view.c	2011-09-24 11:10:53 UTC (rev 40515)
@@ -713,7 +713,7 @@
 }
 #endif
 
-/* use above call to get projecting mat */
+/* use view3d_get_object_project_mat to get projecting mat */
 void ED_view3d_project_float(ARegion *ar, const float vec[3], float adr[2], float mat[4][4])
 {
 	float vec4[4];
@@ -732,6 +732,26 @@
 	}
 }
 
+/* use view3d_get_object_project_mat to get projecting mat */
+void ED_view3d_project_float_v3(ARegion *ar, float *vec, float *adr, float mat[4][4])
+{
+	float vec4[4];
+	
+	copy_v3_v3(vec4, vec);
+	vec4[3]= 1.0;
+	adr[0]= IS_CLIPPED;
+	
+	mul_m4_v4(mat, vec4);
+	
+	if( vec4[3]>FLT_EPSILON ) {
+		adr[0] = (float)(ar->winx/2.0f)+(ar->winx/2.0f)*vec4[0]/vec4[3];	
+		adr[1] = (float)(ar->winy/2.0f)+(ar->winy/2.0f)*vec4[1]/vec4[3];
+		adr[2] = vec4[2]/vec4[3];
+	} else {
+		adr[0] = adr[1] = adr[2] = 0.0f;
+	}
+}
+
 int ED_view3d_boundbox_clip(RegionView3D *rv3d, float obmat[][4], BoundBox *bb)
 {
 	/* return 1: draw */
@@ -803,9 +823,9 @@
 	RegionView3D *rv3d= ar->regiondata;
 	float fx, fy, vec4[4];
 	
-	adr[0]= (int)2140000000.0f;
 	copy_v3_v3(vec4, vec);
 	vec4[3]= 1.0;
+	adr[0]= (int)2140000000.0f;
 	
 	mul_m4_v4(rv3d->persmat, vec4);
 	
@@ -851,9 +871,9 @@
 	RegionView3D *rv3d= ar->regiondata;
 	float fx, fy, vec4[4];
 	
-	adr[0]= IS_CLIPPED;
 	copy_v3_v3(vec4, vec);
 	vec4[3]= 1.0;
+	adr[0]= IS_CLIPPED;
 	
 	mul_m4_v4(rv3d->persmat, vec4);
 	
@@ -877,9 +897,9 @@
 	RegionView3D *rv3d= ar->regiondata;
 	float vec4[4];
 	
-	adr[0]= IS_CLIPPED;
 	copy_v3_v3(vec4, vec);
 	vec4[3]= 1.0;
+	adr[0]= IS_CLIPPED;
 	
 	mul_m4_v4(rv3d->persmat, vec4);
 	




More information about the Bf-blender-cvs mailing list