[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19742] trunk/blender/source/blender: Optional margin for packing UV islands and the 'Pack Islands' menu item.

Campbell Barton ideasman42 at gmail.com
Wed Apr 15 20:20:21 CEST 2009


Revision: 19742
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19742
Author:   campbellbarton
Date:     2009-04-15 20:20:19 +0200 (Wed, 15 Apr 2009)

Log Message:
-----------
Optional margin for packing UV islands and the 'Pack Islands' menu item. Useful for baking with bleed enabled.

Modified Paths:
--------------
    trunk/blender/source/blender/makesdna/DNA_scene_types.h
    trunk/blender/source/blender/src/buttons_editing.c
    trunk/blender/source/blender/src/parametrizer.c
    trunk/blender/source/blender/src/parametrizer.h
    trunk/blender/source/blender/src/unwrapper.c

Modified: trunk/blender/source/blender/makesdna/DNA_scene_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_scene_types.h	2009-04-15 17:53:12 UTC (rev 19741)
+++ trunk/blender/source/blender/makesdna/DNA_scene_types.h	2009-04-15 18:20:19 UTC (rev 19742)
@@ -412,6 +412,8 @@
 	short unwrapper;
 	float uvcalc_radius;
 	float uvcalc_cubesize;
+	float uvcalc_margin;
+	float pad;
 	short uvcalc_mapdir;
 	short uvcalc_mapalign;
 	short uvcalc_flag;

Modified: trunk/blender/source/blender/src/buttons_editing.c
===================================================================
--- trunk/blender/source/blender/src/buttons_editing.c	2009-04-15 17:53:12 UTC (rev 19741)
+++ trunk/blender/source/blender/src/buttons_editing.c	2009-04-15 18:20:19 UTC (rev 19742)
@@ -6622,7 +6622,10 @@
 	uiDefButBitS(block, TOGN, UVCALC_NO_ASPECT_CORRECT, B_NOP, "Image Aspect",100,row,200,butH,&G.scene->toolsettings->uvcalc_flag, 0, 0, 0, 0,  "Scale the UV Unwrapping to correct for the current images aspect ratio");
 
 	row-= butHB+butS;	
-		uiDefButBitS(block, TOG, UVCALC_TRANSFORM_CORRECT, B_NOP, "Transform Correction",100,row,200,butH,&G.scene->toolsettings->uvcalc_flag, 0, 0, 0, 0,  "Correct for UV distortion while transforming, (only works with edge slide now)");
+	uiDefButBitS(block, TOG, UVCALC_TRANSFORM_CORRECT, B_NOP, "Transform Correction",100,row,200,butH,&G.scene->toolsettings->uvcalc_flag, 0, 0, 0, 0,  "Correct for UV distortion while transforming, (only works with edge slide now)");
+	
+	row-= butHB+butS;	
+	uiDefButF(block, NUM,B_NOP ,"Pack Margin:",100,row,200,butH, &G.scene->toolsettings->uvcalc_margin, 0.0, 1.0, 10, 2, "Add a margin between UV islands when unwrapping or with 'Pack Islands' in the UV window");
 
 	row= 180;
 	

Modified: trunk/blender/source/blender/src/parametrizer.c
===================================================================
--- trunk/blender/source/blender/src/parametrizer.c	2009-04-15 17:53:12 UTC (rev 19741)
+++ trunk/blender/source/blender/src/parametrizer.c	2009-04-15 18:20:19 UTC (rev 19742)
@@ -4125,8 +4125,8 @@
 	}
 }
  
-void param_pack(ParamHandle *handle)
-{
+void param_pack(ParamHandle *handle, float margin)
+{	
 	/* box packing variables */
 	boxPack *boxarray, *box;
 	float tot_width, tot_height, scale;
@@ -4158,13 +4158,13 @@
 		
 		p_chart_uv_bbox(chart, trans, chart->u.pack.size);
 		
-		trans[0] = -trans[0];
-		trans[1] = -trans[1];
+		trans[0] = -(trans[0] - margin);
+		trans[1] = -(trans[1] - margin);
 		
 		p_chart_uv_translate(chart, trans);
 		
-		box->w =  chart->u.pack.size[0] + trans[0];
-		box->h =  chart->u.pack.size[1] + trans[1];
+		box->w =  (chart->u.pack.size[0] + trans[0]) + margin*2;
+		box->h =  (chart->u.pack.size[1] + trans[1]) + margin*2;
 		box->index = i; /* warning this index skips PCHART_NOPACK boxes */
 	}
 	

Modified: trunk/blender/source/blender/src/parametrizer.h
===================================================================
--- trunk/blender/source/blender/src/parametrizer.h	2009-04-15 17:53:12 UTC (rev 19741)
+++ trunk/blender/source/blender/src/parametrizer.h	2009-04-15 18:20:19 UTC (rev 19742)
@@ -73,7 +73,7 @@
 
 /* Packing */
 
-void param_pack(ParamHandle *handle);
+void param_pack(ParamHandle *handle, float margin);
 
 /* Average area for all charts */
 

Modified: trunk/blender/source/blender/src/unwrapper.c
===================================================================
--- trunk/blender/source/blender/src/unwrapper.c	2009-04-15 17:53:12 UTC (rev 19741)
+++ trunk/blender/source/blender/src/unwrapper.c	2009-04-15 18:20:19 UTC (rev 19742)
@@ -327,7 +327,7 @@
 	param_lscm_solve(handle);
 	param_lscm_end(handle);
 	
-	param_pack(handle);
+	param_pack(handle, G.scene->toolsettings->uvcalc_margin);
 
 	param_flush(handle);
 
@@ -442,7 +442,7 @@
 	if(!EM_texFaceCheck()) return;
 
 	handle = construct_param_handle(em, 1, 0, 1);
-	param_pack(handle);
+	param_pack(handle, G.scene->toolsettings->uvcalc_margin);
 	param_flush(handle);
 	param_delete(handle);
 





More information about the Bf-blender-cvs mailing list