[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27243] trunk/blender/source/blender/ editors/space_view3d: worldspace text locations & made some improvements to string formatting for particle number display .

Campbell Barton ideasman42 at gmail.com
Wed Mar 3 12:23:59 CET 2010


Revision: 27243
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27243
Author:   campbellbarton
Date:     2010-03-03 12:23:59 +0100 (Wed, 03 Mar 2010)

Log Message:
-----------
worldspace text locations & made some improvements to string formatting for particle number display.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_view3d/drawobject.c
    trunk/blender/source/blender/editors/space_view3d/view3d_intern.h

Modified: trunk/blender/source/blender/editors/space_view3d/drawobject.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/drawobject.c	2010-03-03 10:35:50 UTC (rev 27242)
+++ trunk/blender/source/blender/editors/space_view3d/drawobject.c	2010-03-03 11:23:59 UTC (rev 27243)
@@ -544,7 +544,7 @@
 	
 	/* project first and test */
 	for(vos= strings->first; vos; vos= vos->next) {
-		if(mat)
+		if(mat && !(vos->flag & V3D_CACHE_TEXT_WORLDSPACE))
 			mul_m4_v3(mat, vos->vec);
 		view3d_project_short_clip(ar, vos->vec, vos->mval, 0);
 		if(vos->mval[0]!=IS_CLIPPED)
@@ -3693,22 +3693,19 @@
 					setlinestyle(0);
 				}
 
-				if((part->draw&PART_DRAW_NUM || part->draw&PART_DRAW_HEALTH) && !(G.f & G_RENDER_SHADOW)){
+				if((part->draw & PART_DRAW_NUM || part->draw & PART_DRAW_HEALTH) && !(G.f & G_RENDER_SHADOW)){
+					char *val_pos= val;
 					val[0]= '\0';
-					
+
 					if(part->draw&PART_DRAW_NUM)
-						sprintf(val, " %i", a);
+						val_pos += sprintf(val, "%i", a);
 
-					if(part->draw&PART_DRAW_NUM && part->draw&PART_DRAW_HEALTH)
-						strcat(val, ":");
+					if((part->draw & PART_DRAW_HEALTH) && a < totpart && part->phystype==PART_PHYS_BOIDS)
+						sprintf(val_pos, (val_pos==val) ? "%.2f" : ":%.2f", pa_health);
 
-					if(part->draw&PART_DRAW_HEALTH && a < totpart && part->phystype==PART_PHYS_BOIDS) {
-						char tval[8];
-						sprintf(tval, " %.2f", pa_health);
-						strcat(val, tval);
-					}
 					/* in path drawing state.co is the end point */
-					view3d_cached_text_draw_add(state.co[0],  state.co[1],  state.co[2], val, 0, 0);
+					/* use worldspace beause object matrix is alredy applied */
+					view3d_cached_text_draw_add(state.co[0],  state.co[1],  state.co[2], val, 10, V3D_CACHE_TEXT_WORLDSPACE);
 				}
 			}
 		}

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_intern.h
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_intern.h	2010-03-03 10:35:50 UTC (rev 27242)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_intern.h	2010-03-03 11:23:59 UTC (rev 27243)
@@ -110,6 +110,7 @@
 void view3d_cached_text_draw_add(float x, float y, float z, char *str, short xoffs, short flag);
 void view3d_cached_text_draw_end(View3D *v3d, ARegion *ar, int depth_write, float mat[][4]);
 #define V3D_CACHE_TEXT_ZBUF 1
+#define V3D_CACHE_TEXT_WORLDSPACE 2
 
 /* drawarmature.c */
 int draw_armature(Scene *scene, View3D *v3d, ARegion *ar, Base *base, int dt, int flag);





More information about the Bf-blender-cvs mailing list