[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [24823] trunk/blender/release/scripts/ modules/bpy_types.py: use decorators for python attributes, added bone. length
Campbell Barton
ideasman42 at gmail.com
Mon Nov 23 17:04:20 CET 2009
Revision: 24823
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24823
Author: campbellbarton
Date: 2009-11-23 17:04:19 +0100 (Mon, 23 Nov 2009)
Log Message:
-----------
use decorators for python attributes, added bone.length
Modified Paths:
--------------
trunk/blender/release/scripts/modules/bpy_types.py
Modified: trunk/blender/release/scripts/modules/bpy_types.py
===================================================================
--- trunk/blender/release/scripts/modules/bpy_types.py 2009-11-23 15:41:57 UTC (rev 24822)
+++ trunk/blender/release/scripts/modules/bpy_types.py 2009-11-23 16:04:19 UTC (rev 24823)
@@ -35,23 +35,36 @@
class Object(bpy_types.ID):
- def _get_children(self):
+ @property
+ def children(self):
import bpy
return [child for child in bpy.data.objects if child.parent == self]
- children = property(_get_children)
-
class PoseBone(StructRNA):
- def _get_children(self):
+ def parent_index(self, parent_test):
+ '''
+ The same as 'bone in other_bone.parent_recursive' but saved generating a list.
+ '''
+ parent = self.parent
+ i = 1
+ while parent:
+ if parent == parent_test:
+ return i
+ parent = parent.parent
+ i += 1
+
+ return 0
+
+ @property
+ def children(self):
import bpy
obj = self.id_data
return [child for child in obj.pose.bones if child.parent == self]
- children = property(_get_children)
-
- def _get_parent_recursive(self):
+ @property
+ def parent_recursive(self):
parent_list = []
parent = self.parent
@@ -62,24 +75,9 @@
parent = parent.parent
return parent_list
-
- parent_recursive = property(_get_parent_recursive)
- def parent_index(self, parent_test):
- '''
- The same as 'bone in other_bone.parent_recursive' but saved generating a list.
- '''
- parent = self.parent
- i = 1
- while parent:
- if parent == parent_test:
- return i
- parent = parent.parent
- i += 1
-
- return 0
-
- def _get_children_recursive(self):
+ @property
+ def children_recursive(self):
obj = self.id_data
bones_children = []
for bone in obj.pose.bones:
@@ -91,21 +89,25 @@
bones_children.sort(key=lambda bone_pair: bone_pair[0])
return [bone for index, bone in bones_children]
- children_recursive = property(_get_children_recursive)
+class Bone(StructRNA):
+ @property
+ def length(self):
+ return (self.head - self.tail).length
+
def ord_ind(i1,i2):
if i1<i2: return i1,i2
return i2,i1
class Mesh(bpy_types.ID):
- def _get_edge_keys(self):
+ @property
+ def edge_keys(self):
return [edge_key for face in self.faces for edge_key in face.edge_keys]
- edge_keys = property(_get_edge_keys)
-
- def _get_edge_face_count_dict(self):
+ @property
+ def edge_face_count_dict(self):
face_edge_keys = [face.edge_keys for face in self.faces]
face_edge_count = {}
for face_keys in face_edge_keys:
@@ -117,35 +119,30 @@
return face_edge_count
- edge_face_count_dict = property(_get_edge_face_count_dict)
-
- def _get_edge_face_count(self):
+ @property
+ def edge_face_count(self):
edge_face_count_dict = self.edge_face_count_dict
return [edge_face_count_dict.get(ed.key, 0) for ed in mesh.edges]
- edge_face_count = property(_get_edge_face_count)
-
class MeshEdge(StructRNA):
- def _get_key(self):
+ @property
+ def key(self):
return ord_ind(*tuple(self.verts))
- key = property(_get_key)
-
class MeshFace(StructRNA):
- def _get_edge_keys(self):
+ @property
+ def edge_keys(self):
verts = tuple(self.verts)
if len(verts)==3:
return ord_ind(verts[0], verts[1]), ord_ind(verts[1], verts[2]), ord_ind(verts[2], verts[0])
return ord_ind(verts[0], verts[1]), ord_ind(verts[1], verts[2]), ord_ind(verts[2], verts[3]), ord_ind(verts[3], verts[0])
- edge_keys = property(_get_edge_keys)
-
import collections
class OrderedMeta(type):
def __init__(cls, name, bases, attributes):
More information about the Bf-blender-cvs
mailing list