[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [24348] trunk/blender/release/scripts/op/ mesh.py: forgot this file last commit
Campbell Barton
ideasman42 at gmail.com
Thu Nov 5 13:40:14 CET 2009
Revision: 24348
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24348
Author: campbellbarton
Date: 2009-11-05 13:40:14 +0100 (Thu, 05 Nov 2009)
Log Message:
-----------
forgot this file last commit
Added Paths:
-----------
trunk/blender/release/scripts/op/mesh.py
Added: trunk/blender/release/scripts/op/mesh.py
===================================================================
--- trunk/blender/release/scripts/op/mesh.py (rev 0)
+++ trunk/blender/release/scripts/op/mesh.py 2009-11-05 12:40:14 UTC (rev 24348)
@@ -0,0 +1,71 @@
+# ##### BEGIN GPL LICENSE BLOCK #####
+#
+# This program is free software; you can redistribute it and/or
+# 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.
+#
+# ##### END GPL LICENSE BLOCK #####
+
+import bpy
+
+def main(context):
+ ob = context.active_object
+ bpy.ops.mesh.selection_type(type='FACE')
+ is_editmode = (ob.mode=='EDIT')
+ if is_editmode:
+ bpy.ops.object.mode_set(mode='OBJECT', toggle=False)
+
+ mesh = ob.data
+
+ face_list = [face for face in mesh.faces]
+ face_edge_keys = [face.edge_keys() for face in face_list]
+
+ edge_face_count = mesh.edge_face_count_dict(face_edge_keys)
+
+ def test_interior(index):
+ for key in face_edge_keys[index]:
+ if edge_face_count[key] < 3:
+ return False
+ return True
+
+ for index, face in enumerate(face_list):
+ if(test_interior(index)):
+ face.selected = True
+ else:
+ face.selected = False
+
+ if is_editmode:
+ bpy.ops.object.mode_set(mode='EDIT', toggle=False)
+
+class MeshSelectInteriorFaces(bpy.types.Operator):
+ '''Select faces where all edges have more then 2 face users.'''
+
+ bl_idname = "mesh.faces_select_interior"
+ bl_label = "Select Interior Faces"
+ bl_register = True
+ bl_undo = True
+
+ def poll(self, context):
+ ob = context.active_object
+ return (ob and ob.type == 'MESH')
+
+ def execute(self, context):
+ main(context)
+ return ('FINISHED',)
+
+
+# Register the operator
+bpy.ops.add(MeshSelectInteriorFaces)
+
+if __name__ == "__main__":
+ bpy.ops.mesh.faces_select_interior()
More information about the Bf-blender-cvs
mailing list