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);
 


_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to