[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [4329] contrib/py/scripts/addons/ space_view3d_paint_bprojection.py: BProjection: Update version

geo kgeo kgeogeo at hotmail.com
Tue Feb 26 00:10:45 CET 2013


Revision: 4329
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=4329
Author:   kgeogeo
Date:     2013-02-25 23:10:45 +0000 (Mon, 25 Feb 2013)
Log Message:
-----------
BProjection: Update version

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	2013-02-25 23:07:31 UTC (rev 4328)
+++ contrib/py/scripts/addons/space_view3d_paint_bprojection.py	2013-02-25 23:10:45 UTC (rev 4329)
@@ -2,8 +2,8 @@
     "name": "BProjection",
     "description": "Help Clone tool",
     "author": "kgeogeo",
-    "version": (1, 0),
-    "blender": (2, 6, 3),
+    "version": (2, 0),
+    "blender": (2, 66, 0),
     "wiki_url": "http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/3D_interaction/bprojection",
     "tracker_url":"http://projects.blender.org/tracker/index.php?func=detail&aid=30521&group_id=153&atid=468",
     "category": "Paint"}
@@ -18,1529 +18,16 @@
 import mathutils
 from mathutils import *
 
-BProjection_Empty    = 'Empty for BProjection'
-BProjection_Material = 'Material for BProjection'
-BProjection_Texture  = 'Texture for BProjection'
 
-# Main function for align the plan to view
-def align_to_view(context):
-    ob = context.object
-    em = bpy.data.objects[BProjection_Empty]       
-    rotation = em.custom_rotation
-    scale = em.custom_scale
-    z = em.custom_location.z
-    pos = [em.custom_location.x, em.custom_location.y]
-    
-    reg = context.region       
-    width = reg.width
-    height = reg.height 
-    
-    sd = context.space_data    
-    r3d = sd.region_3d     
-    r3d.update()
-    vr = r3d.view_rotation
-    quat = mathutils.Quaternion((0.0, 0.0, 1.0), math.radians(float(rotation)))
-    v = Vector((pos[0],pos[1],z))
-    v.rotate(vr)
-
-    em = bpy.data.objects[BProjection_Empty]
-    img = bpy.data.textures[BProjection_Texture].image
-    if img and img.size[1] != 0:
-        prop = img.size[0]/img.size[1]
-    else: prop = 1    
-    
-    if em.custom_linkscale:    
-        em.scale = Vector((prop*scale[0], scale[0], 1))
-    else:
-        em.scale = Vector((prop*scale[0], scale[1], 1))
-    pos_cur = em.location - sd.cursor_location
-    rot_cur1 = em.rotation_euler.to_quaternion()
-    em.location = v + ob.location
-    em.rotation_euler = Quaternion.to_euler(vr*quat)   
-    if em.custom_c3d:
-        if em.custom_old_scale != em.custom_scale:
-            pos_cur = em.location - sd.cursor_location       
-        rot_cur2 = em.rotation_euler.to_quaternion()
-        rot_cur1.invert()
-        pos_cur.rotate(rot_cur1)
-        pos_cur.rotate(rot_cur2)
-        v = em.location - pos_cur
-        sd.cursor_location =  v
-
-def applyimage(context):        
-        img = bpy.data.textures[BProjection_Texture].image
-        em = bpy.data.objects[BProjection_Empty]
-        ob = context.object
-               
-        face = ob.data.polygons
-        uvdata = ob.data.uv_textures.active.data 
-            
-        for f,d in zip(face,uvdata):
-            if f.select:
-                d.image = img
-               
-        align_to_view(context)
-        ob.data.update()
-
-# Function to update the properties
-def update_Location(self, context):          
-    align_to_view(context)
-
-def find_uv(context):
-    obj = context.object
-    me = obj.data.vertices
-    vg = obj.vertex_groups
-    l=[]
-    index_uv = 0      
-    for face in obj.data.polygons:
-        x=len(face.vertices)
-        for vertex in face.vertices:
-            if len(me[vertex].groups)>0:
-                for g in me[vertex].groups:
-                    if vg[g.group].name == 'texture plane':
-                        x-=1
-        
-                        
-        if x == 0:
-            l.append([index_uv,len(face.vertices)])
-        index_uv += len(face.vertices)
-    return l
-
-# Function to update the scaleUV
-def update_UVScale(self, context):
-    ob = context.object
-    em = bpy.data.objects[BProjection_Empty]
-    v = Vector((em.custom_offsetuv[0]/10 + 0.5, em.custom_offsetuv[1]/10 + 0.5))
-    l = Vector((0.0,0.0))
-    s = em.custom_scaleuv
-    os = em.custom_old_scaleuv 
-    scale = s - os
-    l = find_uv(context)
-    for i,j in l:
-        for t in range(j):
-            d = context.object.data.uv_layers.active.data[i+t]
-            vres =  v - d.uv  
-            d.uv.x = v.x - vres.x/os[0]*s[0]
-            d.uv.y = v.y - vres.y/os[1]*s[1]
-
-    em.custom_old_scaleuv = s  
-    
-    applyimage(context)
-
-def update_PropUVScale(self, context):
-    em = bpy.data.objects[BProjection_Empty]
-    if em.custom_linkscaleuv:
-        em.custom_scaleuv = [em.custom_propscaleuv,em.custom_propscaleuv]
-
-def update_LinkUVScale(self, context):
-    em = bpy.data.objects[BProjection_Empty]
-    if em.custom_linkscaleuv:
-        em.custom_propscaleuv = em.custom_scaleuv.x
-        update_PropUVScale(self, context)
-    else:
-        update_UVScale(self, context) 
-        
-# Function to update the offsetUV
-def update_UVOffset(self, context):
-    ob = context.object
-    em = bpy.data.objects[BProjection_Empty]
-    o = em.custom_offsetuv
-    oo = em.custom_old_offsetuv 
-    l = find_uv(context)
-    for i,j in l:
-        for t in range(j):
-            d = context.object.data.uv_layers.active.data[i+t]
-            d.uv = [d.uv[0] - oo[0]/10 + o[0]/10, d.uv[1] - oo[1]/10 + o[1]/10]   
-    em.custom_old_offsetuv = o
-    
-    applyimage(context)
-
-# Function to update the flip horizontal
-def update_FlipUVX(self, context):
-    l = find_uv(context)
-    for i,j in l:
-        for t in range(j):
-            d = context.object.data.uv_layers.active.data[i+t]
-            x = d.uv.x
-            d.uv.x = 1 - x
-    
-    applyimage(context)
-
-# Function to update the flip vertical
-def update_FlipUVY(self, context):
-    l = find_uv(context)
-    for i,j in l:
-        for t in range(j):
-            d = context.object.data.uv_layers.active.data[i+t]
-            y = d.uv[1]
-            d.uv[1] = 1 - y
-    
-    applyimage(context)
-
-# Function to update
-def update_Rotation(self, context):              
-    ob = context.object
-    em = bpy.data.objects[BProjection_Empty]
-    if em.custom_rotc3d:
-        angle = em.custom_rotation - em.custom_old_rotation
-        sd = context.space_data
-        vr = sd.region_3d.view_rotation.copy()        
-        c = sd.cursor_location - ob.location
-        e = bpy.data.objects[BProjection_Empty].location - ob.location
-        vo = Vector((0.0, 0.0, 1.0))
-        vo.rotate(vr)
-        quat = mathutils.Quaternion(vo, math.radians(angle))
-        v = e-c
-        v.rotate(quat)
-        vr.invert()
-        v.rotate(vr)
-        c.rotate(vr)
-        em.custom_location = c + v
-    else:        
-        align_to_view(context)
-   
-    em.custom_old_rotation = em.custom_rotation
-
-# Function to update scale
-def update_Scale(self, context):              
-    ob = context.object
-    em = bpy.data.objects[BProjection_Empty]
-    
-    if em.custom_scac3d:
-        sd = context.space_data
-        r3d =  sd.region_3d
-        vr = r3d.view_rotation.copy()
-        vr.invert()
-        e = em.location - ob.location
-        c = sd.cursor_location - ob.location
-        ce = e - c
-        
-        s = em.custom_scale
-        os = em.custom_old_scale
-        c.rotate(vr)
-        ce.rotate(vr)
-        
-        img = bpy.data.textures[BProjection_Texture].image
-        if img and img.size[1] != 0:
-            prop = img.size[0]/img.size[1]
-        else: prop = 1
-        
-        v = Vector((s.x*ce.x/os.x, s.y*ce.y/os.y,0.0))
-        em.custom_location = c + v
-        
-
-    else:          
-        align_to_view(context)
-                
-    em.custom_old_scale = em.custom_scale
-
-def update_PropScale(self, context):
-    em = bpy.data.objects[BProjection_Empty]
-    if em.custom_linkscale:
-        em.custom_scale = [em.custom_propscale,em.custom_propscale]
-    
-def update_LinkScale(self, context):
-    em = bpy.data.objects[BProjection_Empty]
-    if em.custom_linkscale:
-        em.custom_propscale = em.custom_scale.x
-        update_PropScale(self, context)
-    else:
-        update_Scale(self, context) 
-
-def update_activeviewname(self, context):
-    em = bpy.data.objects[BProjection_Empty]
-    if self.custom_active:
-        em.custom_active_view = self.custom_active_view
-
-class custom_props(bpy.types.PropertyGroup):
-    custom_fnlevel = IntProperty(name="Fast navigate level", description="Increase or decrease the SubSurf level, decrease make navigation faster", default=0)
-    
-    custom_location = FloatVectorProperty(name="Location", description="Location of the plane",
-                                          default=(1.0,0,-1.0),
-                                          subtype = 'XYZ', 
-                                          soft_min = -10,
-                                          soft_max = 10,
-                                          step=0.1,
-                                          size=3)
-                                           
-    custom_rotation = FloatProperty(name="Rotation", description="Rotate the plane",
-                                    min=-180, max=180, default=0)
-                                         
-    custom_scale = FloatVectorProperty(name="Scales", description="Scale the planes",
-                                       default=(1.0, 1.0),
-                                       subtype = 'XYZ',
-                                       min = 0.1,
-                                       max = 10,
-                                       soft_min=0.1,
-                                       soft_max=10,
-                                       step=0.1,
-                                       size=2)
-    custom_propscale = FloatProperty(name="PropScale", description="Scale the Plane",
-                                     default=1.0,
-                                     min = 0.1,
-                                     max = 10,
-                                     soft_min=0.1,
-                                     soft_max=10,
-                                     step=0.1)
-                                                                                    
-    custom_linkscale = BoolProperty(name="linkscale", default=True)
-   
-    # 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)

@@ Diff output truncated at 10240 characters. @@


More information about the Bf-extensions-cvs mailing list