[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [3166] contrib/py/scripts/addons/ mesh_inset_extrude.py: some updates towards getting this working.

Brendon Murphy meta.androcto1 at gmail.com
Fri Mar 23 15:54:01 CET 2012


Revision: 3166
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=3166
Author:   meta-androcto
Date:     2012-03-23 14:54:00 +0000 (Fri, 23 Mar 2012)
Log Message:
-----------
some updates towards getting this working.
addon remains broken

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

Modified: contrib/py/scripts/addons/mesh_inset_extrude.py
===================================================================
--- contrib/py/scripts/addons/mesh_inset_extrude.py	2012-03-23 12:06:23 UTC (rev 3165)
+++ contrib/py/scripts/addons/mesh_inset_extrude.py	2012-03-23 14:54:00 UTC (rev 3166)
@@ -9,7 +9,7 @@
     'category': 'Mesh',
     'wiki_url': 'http://wiki.blender.org/index.php/Extensions:2.5/Py/Scripts/Modeling/Inset-Extrude'}
 
-import bpy
+import bpy, bmesh
 import bgl
 import blf
 from math import *
@@ -20,12 +20,12 @@
     selected_faces = []
     selected_islands = []
     if individual_faces:
-        for face in mesh.faces:
+        for face in mesh.polygons:
             if face.select and not face.hide:
                 selected_islands.append([face.index])
         return(selected_islands)
     
-    for face in mesh.faces:
+    for face in mesh.polygons:
         if face.select and not face.hide: selected_faces.append(face.index)
     selected_islands = []
     while len(selected_faces) != 0:
@@ -56,8 +56,8 @@
     for face in active_faces:
         cf = []
         for f in selected_faces:
-            for edge in mesh.faces[face].edge_keys:
-                if edge in mesh.faces[f].edge_keys and f not in connected_faces:
+            for edge in mesh.polygons[face].edge_keys:
+                if edge in mesh.polygons[f].edge_keys and f not in connected_faces:
                     connected_faces.append(f)
                     cf.append(f)
                     break
@@ -68,7 +68,7 @@
 def find_outer_edge(mesh, island):
     edges = []
     for face in island:
-        for edge in mesh.faces[face].edge_keys: edges.append(edge)
+        for edge in mesh.polygons[face].edge_keys: edges.append(edge)
     outer_edges = []
     for edge in edges:
         if edges.count(edge) == 1:
@@ -115,10 +115,10 @@
 def find_edge_faces(mesh, sel_faces, vert_dict):
     edge_faces = []
     for face in sel_faces:
-        for vert in mesh.faces[face].vertices:
+        for vert in mesh.polygons[face].vertices:
             if vert in vert_dict:
-                vert_dict[vert].faces.append(mesh.faces[face].index)
-                if face not in edge_faces: edge_faces.append(mesh.faces[face].index)
+                vert_dict[vert].faces.append(mesh.polygons[face].index)
+                if face not in edge_faces: edge_faces.append(mesh.polygons[face].index)
     return edge_faces
 
 def find_offset_vec(mesh, vert_dict):
@@ -127,7 +127,7 @@
             rel_vec = []         # vertex vectors relative to active vertex
             a = 0       # nr of verts on side 'a' of plane
             b = 0       # on side b
-            for v in mesh.faces[face].vertices:
+            for v in mesh.polygons[face].vertices:
                 if v == vert: continue
                 rel_co = mesh.vertices[vert].co.copy() - mesh.vertices[v].co.copy()
                 rel_vec = rel_co/rel_co.length
@@ -144,7 +144,7 @@
                 break
         
         # find offset_vector
-        offset_vec_raw = Vector.cross(mesh.faces[middle_face].normal, vert_dict[vert].norm_vec)
+        offset_vec_raw = Vector.cross(mesh.polygons[middle_face].normal, vert_dict[vert].norm_vec)
         offset_vec_norm = offset_vec_raw / offset_vec_raw.length
         angle = acos(offset_vec_norm * vert_dict[vert].edge_vec)
         if sin(angle) == 0:
@@ -153,9 +153,9 @@
         
         if len(vert_dict[vert].faces) == 1:
             face_center = Vector([0, 0, 0])
-            for v in mesh.faces[middle_face].vertices:
+            for v in mesh.polygons[middle_face].vertices:
                 face_center += mesh.vertices[v].co.copy()
-            face_center /= len(mesh.faces[middle_face].vertices)
+            face_center /= len(mesh.polygons[middle_face].vertices)
             
             case1 = (face_center - mesh.vertices[vert].co.copy()) + offset_vec
             case2 = (face_center - mesh.vertices[vert].co.copy()) - offset_vec
@@ -163,11 +163,11 @@
                 offset_vec.negate()        
         
         else:
-            for edge in mesh.faces[middle_face].edge_keys:
+            for edge in mesh.polygons[middle_face].edge_keys:
                 test = False
                 for face in vert_dict[vert].faces:
                     if face == middle_face: continue
-                    if edge in mesh.faces[face].edge_keys: 
+                    if edge in mesh.polygons[face].edge_keys: 
                         test = True
                         break
                 if test:
@@ -190,7 +190,7 @@
         vert_dict = island_dicts[edge_faces.index(island)]
         for face in island:
             f_verts = []
-            for vert in mesh.faces[face].vertices:
+            for vert in mesh.polygons[face].vertices:
                 if vert in vert_dict:
                     f_verts.append(vert_dict[vert].new_index)
                 else:
@@ -210,12 +210,12 @@
     
     ef_size = 0
     for i in edge_faces: ef_size += len(i)
-    n_faces_old = len(mesh.faces)
+    n_faces_old = len(mesh.polygons)
     rim_select = range(n_faces_old - ef_size, (n_faces_old+len(faces_new)) - not_selected - ef_size)
     rim_noSelect = range((n_faces_old - ef_size) + (len(faces_new) - not_selected), n_faces_old - ef_size + len(faces_new))
-    mesh.faces.add(len(faces_new))
+    mesh.polygons.add(len(faces_new))
     for i in range(len(faces_new)):
-        mesh.faces[n_faces_old + i].vertices_raw = faces_new[i]
+        mesh.polygons[n_faces_old + i].vertices = faces_new[i]
     mesh.update(calc_edges = True)
     
     bpy.ops.object.mode_set(mode = 'EDIT')
@@ -223,7 +223,7 @@
     bpy.ops.object.mode_set(mode = 'OBJECT')
     for island in edge_faces:
         for face in island:
-            mesh.faces[face].select = True
+            mesh.polygons[face].select = True
     bpy.ops.object.mode_set(mode = 'EDIT')
     bpy.ops.mesh.delete(type='FACE')
     bpy.ops.object.mode_set(mode = 'OBJECT')
@@ -235,12 +235,12 @@
     # will be used for scaling the sensitivity of the interface
     shortest_edge = -1
     if len(edge_faces) == 1:
-        for edge in mesh.faces[edge_faces[0]].edge_keys:
+        for edge in mesh.polygons[edge_faces[0]].edge_keys:
             edgeco = mesh.vertices[edge[0]].co - mesh.vertices[edge[1]].co
             if shortest_edge < 0 or edgeco.length < shortest_edge:
                 shortest_edge = edgeco.length
     for face in edge_faces:        
-        for edge in mesh.faces[face].edge_keys:
+        for edge in mesh.polygons[face].edge_keys:
             if (edge not in outer_edges) and (edge[0] in vert_dict or edge[1] in vert_dict):
                 edgeco = mesh.vertices[edge[0]].co - mesh.vertices[edge[1]].co
                 if shortest_edge < 0 or edgeco.length < shortest_edge:
@@ -251,12 +251,12 @@
     area = 0
     inside_verts = {}
     for face in sel_faces:
-        for vert in mesh.faces[face].vertices:
+        for vert in mesh.polygons[face].vertices:
             if vert in inside_verts:
-                inside_verts[vert].append(mesh.faces[face].normal)
+                inside_verts[vert].append(mesh.polygons[face].normal)
             else:
-                inside_verts[vert] = [mesh.faces[face].normal]
-        area += mesh.faces[face].area
+                inside_verts[vert] = [mesh.polygons[face].normal]
+        area += mesh.polygons[face].area
     displace_vecs = {}
     for vert in list(inside_verts.keys()):
         vec_norm = Vector([0,0,0])
@@ -279,8 +279,8 @@
     all.extend(rim_select)
     all.extend(rim_noSelect)
     for face in all:
-        mesh.faces[face].select = True
-        mesh.faces[face].use_smooth = use_smooth
+        face = bpy.context.object.data.polygons.active = True
+        mesh.polygons[face].use_smooth = use_smooth
     bpy.ops.object.mode_set(mode = 'EDIT')
     bpy.ops.object.vertex_group_select()
     bpy.ops.mesh.normals_make_consistent()
@@ -289,16 +289,15 @@
     bpy.ops.object.mode_set(mode = 'EDIT')
     ef_size = 0
     for i in edge_faces: ef_size += len(i)
-    if mesh.faces[n_faces_old - ef_size].normal * ref_normal < 0.9:
+    if mesh.polygons[n_faces_old - ef_size].normal * ref_normal < 0.9:
         bpy.ops.mesh.flip_normals()
     bpy.ops.mesh.select_all(action='DESELECT')
     bpy.ops.object.vertex_group_select()
     bpy.ops.object.vertex_group_remove()
     bpy.ops.object.mode_set(mode = 'OBJECT')
     for face in rim_select:
-        mesh.faces[face].select = True
+        bpy.context.object.data.polygons.active = True
 
-
 def run_inset_extrude(mesh, individual_faces):
     sel_faces = find_sel_faces(mesh, individual_faces)
     outer_edges = []
@@ -318,8 +317,8 @@
         
         edge_faces = find_edge_faces(mesh, island, vert_dict)
         edge_faces_islands.append(edge_faces)
-        ref_normal = mesh.faces[edge_faces[0]].normal.copy()
-        use_smooth = mesh.faces[edge_faces[0]].use_smooth
+        ref_normal = mesh.polygons[edge_faces[0]].normal.copy()
+        use_smooth = mesh.polygons[edge_faces[0]].use_smooth
         find_offset_vec(mesh, vert_dict)
         
         short_edge = find_shortest_edge(mesh, edge_faces, vert_dict, out_edges)



More information about the Bf-extensions-cvs mailing list