[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [24990] trunk/blender/release/scripts: pep8 cleanup in ui and op dirs, added popup to select pattern
Campbell Barton
ideasman42 at gmail.com
Sun Nov 29 00:37:56 CET 2009
Revision: 24990
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24990
Author: campbellbarton
Date: 2009-11-29 00:37:56 +0100 (Sun, 29 Nov 2009)
Log Message:
-----------
pep8 cleanup in ui and op dirs, added popup to select pattern
Modified Paths:
--------------
trunk/blender/release/scripts/op/mesh_skin.py
trunk/blender/release/scripts/op/object.py
trunk/blender/release/scripts/op/presets.py
trunk/blender/release/scripts/op/uvcalc_smart_project.py
trunk/blender/release/scripts/op/wm.py
trunk/blender/release/scripts/ui/properties_data_bone.py
trunk/blender/release/scripts/ui/properties_material.py
trunk/blender/release/scripts/ui/properties_object_constraint.py
trunk/blender/release/scripts/ui/properties_physics_cloth.py
trunk/blender/release/scripts/ui/properties_render.py
trunk/blender/release/scripts/ui/space_image.py
trunk/blender/release/scripts/ui/space_sequencer.py
trunk/blender/release/scripts/ui/space_text.py
trunk/blender/release/scripts/ui/space_userpref.py
trunk/blender/release/scripts/ui/space_view3d.py
trunk/blender/release/scripts/ui/space_view3d_toolbar.py
Modified: trunk/blender/release/scripts/op/mesh_skin.py
===================================================================
--- trunk/blender/release/scripts/op/mesh_skin.py 2009-11-28 22:45:47 UTC (rev 24989)
+++ trunk/blender/release/scripts/op/mesh_skin.py 2009-11-28 23:37:56 UTC (rev 24990)
@@ -4,12 +4,12 @@
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
-#
+#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-#
+#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
@@ -29,622 +29,622 @@
BIG_NUM = 1<<30
global CULL_METHOD
-CULL_METHOD = 0
+CULL_METHOD = 0
def AngleBetweenVecs(a1,a2):
- import math
- try:
- return math.degrees(_AngleBetweenVecs_(a1,a2))
- except:
- return 180.0
+ import math
+ try:
+ return math.degrees(_AngleBetweenVecs_(a1,a2))
+ except:
+ return 180.0
class edge(object):
- __slots__ = 'v1', 'v2', 'co1', 'co2', 'length', 'removed', 'match', 'cent', 'angle', 'next', 'prev', 'normal', 'fake'
- def __init__(self, v1,v2):
- self.v1 = v1
- self.v2 = v2
- co1, co2= v1.co, v2.co
- self.co1= co1
- self.co2= co2
-
- # uv1 uv2 vcol1 vcol2 # Add later
- self.length = (co1 - co2).length
- self.removed = 0 # Have we been culled from the eloop
- self.match = None # The other edge were making a face with
-
- self.cent= MidpointVecs(co1, co2)
- self.angle= 0.0
- self.fake= False
+ __slots__ = 'v1', 'v2', 'co1', 'co2', 'length', 'removed', 'match', 'cent', 'angle', 'next', 'prev', 'normal', 'fake'
+ def __init__(self, v1,v2):
+ self.v1 = v1
+ self.v2 = v2
+ co1, co2= v1.co, v2.co
+ self.co1= co1
+ self.co2= co2
+ # uv1 uv2 vcol1 vcol2 # Add later
+ self.length = (co1 - co2).length
+ self.removed = 0 # Have we been culled from the eloop
+ self.match = None # The other edge were making a face with
+
+ self.cent= MidpointVecs(co1, co2)
+ self.angle= 0.0
+ self.fake= False
+
class edgeLoop(object):
- __slots__ = 'centre', 'edges', 'normal', 'closed', 'backup_edges'
- def __init__(self, loop, me, closed): # Vert loop
- # Use next and prev, nextDist, prevDist
-
- # Get Loops centre.
- fac= len(loop)
- verts = me.verts
- self.centre= functools.reduce(lambda a,b: a+verts[b].co/fac, loop, Vector())
-
- # Convert Vert loop to Edges.
- self.edges = [edge(verts[loop[vIdx-1]], verts[loop[vIdx]]) for vIdx in range(len(loop))]
-
- if not closed:
- self.edges[0].fake = True # fake edge option
-
- self.closed = closed
-
-
- # Assign linked list
- for eIdx in range(len(self.edges)-1):
- self.edges[eIdx].next = self.edges[eIdx+1]
- self.edges[eIdx].prev = self.edges[eIdx-1]
- # Now last
- self.edges[-1].next = self.edges[0]
- self.edges[-1].prev = self.edges[-2]
-
-
-
- # GENERATE AN AVERAGE NORMAL FOR THE WHOLE LOOP.
- self.normal = Vector()
- for e in self.edges:
- n = (self.centre-e.co1).cross(self.centre-e.co2)
- # Do we realy need tot normalize?
- n.normalize()
- self.normal += n
-
- # Generate the angle
- va= e.cent - e.prev.cent
- vb= e.next.cent - e.cent
-
- e.angle= AngleBetweenVecs(va, vb)
-
- # Blur the angles
- #for e in self.edges:
- # e.angle= (e.angle+e.next.angle)/2
-
- # Blur the angles
- #for e in self.edges:
- # e.angle= (e.angle+e.prev.angle)/2
-
- self.normal.normalize()
-
- # Generate a normal for each edge.
- for e in self.edges:
-
- n1 = e.co1
- n2 = e.co2
- n3 = e.prev.co1
-
- a = n1-n2
- b = n1-n3
- normal1 = a.cross(b)
- normal1.normalize()
-
- n1 = e.co2
- n3 = e.next.co2
- n2 = e.co1
-
- a = n1-n2
- b = n1-n3
-
- normal2 = a.cross(b)
- normal2.normalize()
-
- # Reuse normal1 var
- normal1 += normal1 + normal2
- normal1.normalize()
-
- e.normal = normal1
- #print e.normal
+ __slots__ = 'centre', 'edges', 'normal', 'closed', 'backup_edges'
+ def __init__(self, loop, me, closed): # Vert loop
+ # Use next and prev, nextDist, prevDist
+ # Get Loops centre.
+ fac= len(loop)
+ verts = me.verts
+ self.centre= functools.reduce(lambda a,b: a+verts[b].co/fac, loop, Vector())
-
- def backup(self):
- # Keep a backup of the edges
- self.backup_edges = self.edges[:]
-
- def restore(self):
- self.edges = self.backup_edges[:]
- for e in self.edges:
- e.removed = 0
-
- def reverse(self):
- self.edges.reverse()
- self.normal.negate()
-
- for e in self.edges:
- e.normal.negate()
- e.v1, e.v2 = e.v2, e.v1
- e.co1, e.co2 = e.co2, e.co1
- e.next, e.prev = e.prev, e.next
-
-
- def removeSmallest(self, cullNum, otherLoopLen):
- '''
- Removes N Smallest edges and backs up the loop,
- this is so we can loop between 2 loops as if they are the same length,
- backing up and restoring incase the loop needs to be skinned with another loop of a different length.
- '''
- global CULL_METHOD
- if CULL_METHOD == 1: # Shortest edge
- eloopCopy = self.edges[:]
-
- # Length sort, smallest first
- try: eloopCopy.sort(key = lambda e1: e1.length)
- except: eloopCopy.sort(lambda e1, e2: cmp(e1.length, e2.length ))
-
- # Dont use atm
- #eloopCopy.sort(lambda e1, e2: cmp(e1.angle*e1.length, e2.angle*e2.length)) # Length sort, smallest first
- #eloopCopy.sort(lambda e1, e2: cmp(e1.angle, e2.angle)) # Length sort, smallest first
-
- remNum = 0
- for i, e in enumerate(eloopCopy):
- if not e.fake:
- e.removed = 1
- self.edges.remove( e ) # Remove from own list, still in linked list.
- remNum += 1
-
- if not remNum < cullNum:
- break
-
- else: # CULL METHOD is even
-
- culled = 0
-
- step = int(otherLoopLen / float(cullNum)) * 2
-
- currentEdge = self.edges[0]
- while culled < cullNum:
-
- # Get the shortest face in the next STEP
- step_count= 0
- bestAng= 360.0
- smallestEdge= None
- while step_count<=step or smallestEdge==None:
- step_count+=1
- if not currentEdge.removed: # 0 or -1 will not be accepted
- if currentEdge.angle<bestAng and not currentEdge.fake:
- smallestEdge= currentEdge
- bestAng= currentEdge.angle
-
- currentEdge = currentEdge.next
-
- # In that stepping length we have the smallest edge.remove it
- smallestEdge.removed = 1
- self.edges.remove(smallestEdge)
-
- # Start scanning from the edge we found? - result is over fanning- no good.
- #currentEdge= smallestEdge.next
-
- culled+=1
-
+ # Convert Vert loop to Edges.
+ self.edges = [edge(verts[loop[vIdx-1]], verts[loop[vIdx]]) for vIdx in range(len(loop))]
+ if not closed:
+ self.edges[0].fake = True # fake edge option
+
+ self.closed = closed
+
+
+ # Assign linked list
+ for eIdx in range(len(self.edges)-1):
+ self.edges[eIdx].next = self.edges[eIdx+1]
+ self.edges[eIdx].prev = self.edges[eIdx-1]
+ # Now last
+ self.edges[-1].next = self.edges[0]
+ self.edges[-1].prev = self.edges[-2]
+
+
+
+ # GENERATE AN AVERAGE NORMAL FOR THE WHOLE LOOP.
+ self.normal = Vector()
+ for e in self.edges:
+ n = (self.centre-e.co1).cross(self.centre-e.co2)
+ # Do we realy need tot normalize?
+ n.normalize()
+ self.normal += n
+
+ # Generate the angle
+ va= e.cent - e.prev.cent
+ vb= e.next.cent - e.cent
+
+ e.angle= AngleBetweenVecs(va, vb)
+
+ # Blur the angles
+ #for e in self.edges:
+ # e.angle= (e.angle+e.next.angle)/2
+
+ # Blur the angles
+ #for e in self.edges:
+ # e.angle= (e.angle+e.prev.angle)/2
+
+ self.normal.normalize()
+
+ # Generate a normal for each edge.
+ for e in self.edges:
+
+ n1 = e.co1
+ n2 = e.co2
+ n3 = e.prev.co1
+
+ a = n1-n2
+ b = n1-n3
+ normal1 = a.cross(b)
+ normal1.normalize()
+
+ n1 = e.co2
+ n3 = e.next.co2
+ n2 = e.co1
+
+ a = n1-n2
+ b = n1-n3
+
+ normal2 = a.cross(b)
+ normal2.normalize()
+
+ # Reuse normal1 var
+ normal1 += normal1 + normal2
+ normal1.normalize()
+
+ e.normal = normal1
+ #print e.normal
+
+
+
+ def backup(self):
+ # Keep a backup of the edges
+ self.backup_edges = self.edges[:]
+
+ def restore(self):
+ self.edges = self.backup_edges[:]
+ for e in self.edges:
+ e.removed = 0
+
+ def reverse(self):
+ self.edges.reverse()
+ self.normal.negate()
+
+ for e in self.edges:
+ e.normal.negate()
+ e.v1, e.v2 = e.v2, e.v1
+ e.co1, e.co2 = e.co2, e.co1
+ e.next, e.prev = e.prev, e.next
+
+
+ def removeSmallest(self, cullNum, otherLoopLen):
+ '''
+ Removes N Smallest edges and backs up the loop,
+ this is so we can loop between 2 loops as if they are the same length,
+ backing up and restoring incase the loop needs to be skinned with another loop of a different length.
+ '''
+ global CULL_METHOD
+ if CULL_METHOD == 1: # Shortest edge
+ eloopCopy = self.edges[:]
+
+ # Length sort, smallest first
+ try: eloopCopy.sort(key = lambda e1: e1.length)
+ except: eloopCopy.sort(lambda e1, e2: cmp(e1.length, e2.length ))
+
+ # Dont use atm
+ #eloopCopy.sort(lambda e1, e2: cmp(e1.angle*e1.length, e2.angle*e2.length)) # Length sort, smallest first
+ #eloopCopy.sort(lambda e1, e2: cmp(e1.angle, e2.angle)) # Length sort, smallest first
+
+ remNum = 0
+ for i, e in enumerate(eloopCopy):
+ if not e.fake:
+ e.removed = 1
+ self.edges.remove( e ) # Remove from own list, still in linked list.
+ remNum += 1
+
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list