[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33257] trunk/blender: Changes to the ortho grid drawing based on discussion with Ton.

Campbell Barton ideasman42 at gmail.com
Tue Nov 23 15:14:07 CET 2010


Revision: 33257
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33257
Author:   campbellbarton
Date:     2010-11-23 15:14:06 +0100 (Tue, 23 Nov 2010)

Log Message:
-----------
Changes to the ortho grid drawing based on discussion with Ton.
- ortho grid now draws scaled by the view3d 'Scale' setting, venomgfx noticed this was missing.
- so as not to confuse add scale next to unit display text, so rather then "Metres" it shows "Metres x 1.5" otherwise its confusing that grid lines are not in exact units.
- changed grid spacing to grid scale (needed for more logical behavior with units)
- when units are enabled grey out subdivisions.

Modified Paths:
--------------
    trunk/blender/release/scripts/ui/space_view3d.py
    trunk/blender/source/blender/blenkernel/BKE_unit.h
    trunk/blender/source/blender/blenkernel/intern/unit.c
    trunk/blender/source/blender/editors/space_view3d/view3d_draw.c
    trunk/blender/source/blender/makesrna/intern/rna_space.c

Modified: trunk/blender/release/scripts/ui/space_view3d.py
===================================================================
--- trunk/blender/release/scripts/ui/space_view3d.py	2010-11-23 14:04:05 UTC (rev 33256)
+++ trunk/blender/release/scripts/ui/space_view3d.py	2010-11-23 14:14:06 UTC (rev 33257)
@@ -2013,7 +2013,8 @@
         layout = self.layout
 
         view = context.space_data
-        gs = context.scene.game_settings
+        scene = context.scene
+        gs = scene.game_settings
         ob = context.object
 
         col = layout.column()
@@ -2042,8 +2043,10 @@
         sub = col.column(align=True)
         sub.active = (display_all and view.show_floor)
         sub.prop(view, "grid_lines", text="Lines")
-        sub.prop(view, "grid_spacing", text="Spacing")
-        sub.prop(view, "grid_subdivisions", text="Subdivisions")
+        sub.prop(view, "grid_scale", text="Scale")
+        subsub = sub.column(align=True)
+        subsub.active = scene.unit_settings.system == 'NONE'
+        subsub.prop(view, "grid_subdivisions", text="Subdivisions")
 
         col = layout.column()
         col.label(text="Shading:")

Modified: trunk/blender/source/blender/blenkernel/BKE_unit.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_unit.h	2010-11-23 14:04:05 UTC (rev 33256)
+++ trunk/blender/source/blender/blenkernel/BKE_unit.h	2010-11-23 14:14:06 UTC (rev 33257)
@@ -51,10 +51,10 @@
 /* loop over scales, coudl add names later */
 //double bUnit_Iter(void **unit, char **name, int system, int type);
 
-void	bUnit_GetSystem(void **usys_pt, int *len, int system, int type);
-char*	bUnit_GetName(void *usys_pt, int index);
-char*	bUnit_GetNameDisplay(void *usys_pt, int index);
-double	bUnit_GetScaler(void *usys_pt, int index);
+void		bUnit_GetSystem(void **usys_pt, int *len, int system, int type);
+const char*	bUnit_GetName(void *usys_pt, int index);
+const char*	bUnit_GetNameDisplay(void *usys_pt, int index);
+double		bUnit_GetScaler(void *usys_pt, int index);
 
 /* aligned with PropertyUnit */
 #define		B_UNIT_NONE 0

Modified: trunk/blender/source/blender/blenkernel/intern/unit.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/unit.c	2010-11-23 14:04:05 UTC (rev 33256)
+++ trunk/blender/source/blender/blenkernel/intern/unit.c	2010-11-23 14:14:06 UTC (rev 33257)
@@ -69,13 +69,13 @@
 
 /* define a single unit */
 typedef struct bUnitDef {
-	char *name;
-	char *name_plural;	/* abused a bit for the display name */
-	char *name_short;	/* this is used for display*/
-	char *name_alt;		/* keyboard-friendly ASCII-only version of name_short, can be NULL */
+	const char *name;
+	const char *name_plural;	/* abused a bit for the display name */
+	const char *name_short;	/* this is used for display*/
+	const char *name_alt;		/* keyboard-friendly ASCII-only version of name_short, can be NULL */
 						/* if name_short has non-ASCII chars, name_alt should be present */
 	
-	char *name_display;		/* can be NULL */
+	const char *name_display;		/* can be NULL */
 
 	double scalar;
 	double bias;		/* not used yet, needed for converting temperature */
@@ -421,7 +421,7 @@
 }
 
 
-static char *unit_find_str(char *str, char *substr)
+static char *unit_find_str(char *str, const char *substr)
 {
 	char *str_found;
 
@@ -476,7 +476,7 @@
 	}
 }
 
-static int unit_scale_str(char *str, int len_max, char *str_tmp, double scale_pref, bUnitDef *unit, char *replace_str)
+static int unit_scale_str(char *str, int len_max, char *str_tmp, double scale_pref, bUnitDef *unit, const char *replace_str)
 {
 	char *str_found;
 
@@ -755,11 +755,11 @@
 	*len= usys->length;
 }
 
-char *bUnit_GetName(void *usys_pt, int index)
+const char *bUnit_GetName(void *usys_pt, int index)
 {
 	return ((bUnitCollection *)usys_pt)->units[index].name;
 }
-char *bUnit_GetNameDisplay(void *usys_pt, int index)
+const char *bUnit_GetNameDisplay(void *usys_pt, int index)
 {
 	return ((bUnitCollection *)usys_pt)->units[index].name_display;
 }

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_draw.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_draw.c	2010-11-23 14:04:05 UTC (rev 33256)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_draw.c	2010-11-23 14:14:06 UTC (rev 33257)
@@ -243,7 +243,7 @@
 
 #define GRID_MIN_PX 6.0f
 
-static void drawgrid(UnitSettings *unit, ARegion *ar, View3D *v3d, char **grid_unit)
+static void drawgrid(UnitSettings *unit, ARegion *ar, View3D *v3d, const char **grid_unit)
 {
 	/* extern short bgpicmode; */
 	RegionView3D *rv3d= ar->regiondata;
@@ -266,7 +266,7 @@
 	x= (wx)*fx/fw;
 	y= (wy)*fy/fw;
 
-	vec4[0]=vec4[1]= (unit->system) ? 1.0 : v3d->grid;
+	vec4[0]=vec4[1]= v3d->grid;
 
 	vec4[2]= 0.0;
 	vec4[3]= 1.0;
@@ -306,7 +306,7 @@
 				/* Store the smallest drawn grid size units name so users know how big each grid cell is */
 				if(*grid_unit==NULL) {
 					*grid_unit= bUnit_GetNameDisplay(usys, i);
-					rv3d->gridview= (scalar / unit->scale_length);
+					rv3d->gridview= (scalar / unit->scale_length) * v3d->grid;
 				}
 				blend_fac= 1-((GRID_MIN_PX*2)/dx_scalar);
 
@@ -2287,7 +2287,7 @@
 	int retopo= 0, sculptparticle= 0;
 	unsigned int lay_used;
 	Object *obact = OBACT;
-	char *grid_unit= NULL;
+	const char *grid_unit= NULL;
 
 	/* from now on all object derived meshes check this */
 	v3d->customdata_mask= get_viewedit_datamask(CTX_wm_screen(C), scene, obact);
@@ -2507,8 +2507,14 @@
 		draw_viewport_name(ar, v3d);
 	}
 	if (grid_unit) { /* draw below the viewport name */
+		char tstr[32]= "";
+
 		UI_ThemeColor(TH_TEXT_HI);
-		BLF_draw_default(22,  ar->winy-(USER_SHOW_VIEWPORTNAME?40:20), 0.0f, grid_unit, 65535); /* XXX, use real length */
+		if(v3d->grid != 1.0f) {
+			BLI_snprintf(tstr, sizeof(tstr), "%s x %.4g", v3d->grid, grid_unit);
+		}
+
+		BLF_draw_default(22,  ar->winy-(USER_SHOW_VIEWPORTNAME?40:20), 0.0f, tstr[0]?tstr : grid_unit, sizeof(tstr)); /* XXX, use real length */
 	}
 
 	ob= OBACT;

Modified: trunk/blender/source/blender/makesrna/intern/rna_space.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_space.c	2010-11-23 14:04:05 UTC (rev 33256)
+++ trunk/blender/source/blender/makesrna/intern/rna_space.c	2010-11-23 14:14:06 UTC (rev 33257)
@@ -1079,13 +1079,13 @@
 	RNA_def_property_range(prop, 1.0f, FLT_MAX);
 	RNA_def_property_ui_text(prop, "Clip End", "3D View far clipping distance");
 	RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
-	
-	prop= RNA_def_property(srna, "grid_spacing", PROP_FLOAT, PROP_DISTANCE);
+
+	prop= RNA_def_property(srna, "grid_scale", PROP_FLOAT, PROP_NONE);
 	RNA_def_property_float_sdna(prop, NULL, "grid");
-	RNA_def_property_ui_text(prop, "Grid Spacing", "The distance between 3D View grid lines");
+	RNA_def_property_ui_text(prop, "Grid Scale", "The distance between 3D View grid lines");
 	RNA_def_property_range(prop, 0.0f, FLT_MAX);
 	RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
-	
+
 	prop= RNA_def_property(srna, "grid_lines", PROP_INT, PROP_NONE);
 	RNA_def_property_int_sdna(prop, NULL, "gridlines");
 	RNA_def_property_ui_text(prop, "Grid Lines", "The number of grid lines to display in perspective view");





More information about the Bf-blender-cvs mailing list