[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [3223] contrib/py/scripts/addons/ space_view3d_paint_bprojection.py: BProjection: fix the problem with linkscale and prop scale

geo kgeo kgeogeo at hotmail.com
Thu Apr 5 18:26:02 CEST 2012


Revision: 3223
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=3223
Author:   kgeogeo
Date:     2012-04-05 16:26:02 +0000 (Thu, 05 Apr 2012)
Log Message:
-----------
BProjection: fix the problem with linkscale and prop scale

Modified Paths:
--------------
    contrib/py/scripts/addons/space_view3d_paint_bprojection.py

Modified: contrib/py/scripts/addons/space_view3d_paint_bprojection.py
===================================================================
--- contrib/py/scripts/addons/space_view3d_paint_bprojection.py	2012-04-05 15:56:58 UTC (rev 3222)
+++ contrib/py/scripts/addons/space_view3d_paint_bprojection.py	2012-04-05 16:26:02 UTC (rev 3223)
@@ -67,14 +67,24 @@
     uvdata = ob.data.uv_loop_layers.active.data
     for i in range(trunc(pow(ob.custom_sub+1, 2)*4)):
         vres =  v - uvdata[len(uvdata)-1-i].uv  
-        if ob.custom_linkscaleuv:
-            uvdata[len(uvdata)-1-i].uv = [v.x - vres.x/os[0]*s[0], v.y - vres.y/os[0]*s[0]]
-        else:
-            uvdata[len(uvdata)-1-i].uv = [v.x - vres.x/os[0]*s[0], v.y - vres.y/os[1]*s[1]]    
-    ob.custom_old_scaleuv = s
-        
+        uvdata[len(uvdata)-1-i].uv.x = v.x - vres.x/os[0]*s[0]
+        uvdata[len(uvdata)-1-i].uv.y = v.y - vres.y/os[1]*s[1]
+
+    ob.custom_old_scaleuv = s  
     align_to_view(context)
 
+def update_PropUVScale(self, context):
+    ob = context.object
+    if ob.custom_linkscaleuv:
+        ob.custom_scaleuv = [ob.custom_propscaleuv,ob.custom_propscaleuv]
+
+def update_LinkUVScale(self, context):
+    ob = context.object
+    if ob.custom_linkscaleuv:
+        update_PropUVScale(self, context)
+    else:
+        update_UVScale(self, context) 
+        
 # Function to update the offsetUV
 def update_UVOffset(self, context):
     ob = context.object
@@ -188,7 +198,9 @@
    
     # UV properties
     custom_scaleuv = FloatVectorProperty(name="ScaleUV", description="Scale the texture's UV",
-                                            default=(1.0,1.0),min = 0.01, subtype = 'XYZ', size=2)  
+                                            default=(1.0,1.0),min = 0.01, subtype = 'XYZ', size=2)
+    custom_propscaleuv = FloatProperty(name="PropScaleUV", description="Scale the texture's UV",
+                                           default=1.0,min = 0.01) 
     custom_offsetuv = FloatVectorProperty(name="OffsetUV", description="Decal the texture's UV",
                                             default=(0.0,0.0), subtype = 'XYZ', size=2)       
     custom_linkscaleuv = BoolProperty(name="linkscaleUV", default=True)
@@ -233,14 +245,16 @@
     
     # UV properties
     Ob.custom_scaleuv = FloatVectorProperty(name="ScaleUV", description="Scale the texture's UV",
-                                            default=(1.0,1.0),min = 0.01, subtype = 'XYZ', size=2,update = update_UVScale)    
+                                            default=(1.0,1.0),min = 0.01, subtype = 'XYZ', size=2,update = update_UVScale)
+    Ob.custom_propscaleuv = FloatProperty(name="PropScaleUV", description="Scale the texture's UV",
+                                           default=1.0,min = 0.01,update = update_PropUVScale)    
     Ob.custom_old_scaleuv = FloatVectorProperty(name="old_ScaleUV", description="Scale the texture's UV",
                                                 default=(1.0,1.0),min = 0.01, subtype = 'XYZ', size=2)
     Ob.custom_offsetuv = FloatVectorProperty(name="OffsetUV", description="Decal the texture's UV",
                                             default=(0.0,0.0), subtype = 'XYZ', size=2,update = update_UVOffset)    
     Ob.custom_old_offsetuv = FloatVectorProperty(name="old_OffsetUV", description="Decal the texture's UV",
                                                  default=(0.0,0.0), subtype = 'XYZ', size=2)    
-    Ob.custom_linkscaleuv = BoolProperty(name="linkscaleUV", default=True, update = update_UVScale)
+    Ob.custom_linkscaleuv = BoolProperty(name="linkscaleUV", default=True, update = update_LinkUVScale)
     Ob.custom_flipuvx = BoolProperty(name="flipuvx", default=False, update = update_FlipUVX)
     Ob.custom_flipuvy = BoolProperty(name="flipuvy", default=False, update = update_FlipUVY)
     
@@ -259,7 +273,7 @@
     list_prop = ['custom_location', 'custom_rotation', 'custom_old_rotation', 'custom_scale', 'custom_old_scale', 'custom_c3d',
                  'custom_rot', 'custom_rotc3d', 'custom_scaleuv', 'custom_flipuvx', 'custom_flipuvy', 'custom_linkscale',
                  'custom_linkscaleuv', 'custom_old_scaleuv', 'custom_offsetuv', 'custom_old_offsetuv', 'custom_scac3d', 'custom_sub',
-                 'custom_expand', 'custom_active_view', 'custom_props']
+                 'custom_expand', 'custom_active_view', 'custom_propscaleuv', 'custom_props']
     for prop in list_prop:
         try:
             del bpy.context.object[prop]
@@ -300,6 +314,7 @@
         prop.custom_scaleuv = ob.custom_scaleuv
         prop.custom_offsetuv =  ob.custom_offsetuv  
         prop.custom_linkscaleuv = ob.custom_linkscaleuv
+        prop.custom_propscaleuv = ob.custom_propscaleuv
         prop.custom_flipuvx = ob.custom_flipuvx
         prop.custom_flipuvy = ob.custom_flipuvy
         try:
@@ -321,9 +336,10 @@
         ob = context.object
         prop = ob.custom_props[self.index]
         ob.custom_linkscale =  prop.custom_linkscale
+        ob.custom_offsetuv =  prop.custom_offsetuv 
+        ob.custom_linkscaleuv = prop.custom_linkscaleuv
         ob.custom_scaleuv = prop.custom_scaleuv
-        ob.custom_offsetuv =  prop.custom_offsetuv  
-        ob.custom_linkscaleuv = prop.custom_linkscaleuv        
+        ob.custom_propscaleuv = prop.custom_propscaleuv       
         ob.custom_rotation =  prop.custom_rotation                    
         ob.custom_scale =  prop.custom_scale  
         ob.custom_location =  prop.custom_location                    
@@ -472,11 +488,12 @@
                 row.prop(ob, "custom_flipuvy",text="",icon='FULLSCREEN_ENTER') 
                 row  = box.row(align =True)
                 row.label(text="UV's Scale:")
-                row  = box.row(align =True)            
-                row.prop(ob,'custom_scaleuv',text='')
+                row  = box.row(align =True)                            
                 if ob.custom_linkscaleuv:
+                    row.prop(ob,'custom_propscaleuv',text='')
                     row.prop(ob, "custom_linkscaleuv",text="",icon='LINKED')
                 else: 
+                    row.prop(ob,'custom_scaleuv',text='')
                     row.prop(ob, "custom_linkscaleuv",text="",icon='UNLINKED')            
                 row = box.column(align =True)
                 row.prop(ob.material_slots['Material for BProjection'].material,'alpha', slider = True)
@@ -906,7 +923,7 @@
             if 'U' in self.key:
                 suv = ob.custom_scaleuv
                 if ob.custom_linkscaleuv:    
-                    ob.custom_scaleuv= [suv[0] + deltax/50 , suv[0] + deltax/50]
+                    ob.custom_propscaleuv += deltax/50
                 else:
                     ob.custom_scaleuv= [suv[0] + deltax/50 , suv[1] + deltay/50]               
 



More information about the Bf-extensions-cvs mailing list