Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'release/scripts/modules/bpy_types.py')
-rw-r--r--release/scripts/modules/bpy_types.py157
1 files changed, 0 insertions, 157 deletions
diff --git a/release/scripts/modules/bpy_types.py b/release/scripts/modules/bpy_types.py
index c3352dd33ad..3c1b454e72e 100644
--- a/release/scripts/modules/bpy_types.py
+++ b/release/scripts/modules/bpy_types.py
@@ -356,163 +356,6 @@ class Mesh(bpy_types.ID):
def edge_keys(self):
return [edge_key for face in self.faces for edge_key in face.edge_keys]
- @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:
- for key in face_keys:
- try:
- face_edge_count[key] += 1
- except:
- face_edge_count[key] = 1
-
- return face_edge_count
-
- @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 self.edges]
-
- def edge_loops_from_faces(self, faces=None, seams=()):
- """
- Edge loops defined by faces
-
- Takes me.faces or a list of faces and returns the edge loops
- These edge loops are the edges that sit between quads, so they dont touch
- 1 quad, note: not connected will make 2 edge loops, both only containing 2 edges.
-
- return a list of edge key lists
- [ [(0,1), (4, 8), (3,8)], ...]
-
- return a list of edge vertex index lists
- """
-
- OTHER_INDEX = 2, 3, 0, 1 # opposite face index
-
- if faces is None:
- faces = self.faces
-
- edges = {}
-
- for f in faces:
-# if len(f) == 4:
- if f.vertices_raw[3] != 0:
- edge_keys = f.edge_keys
- for i, edkey in enumerate(f.edge_keys):
- edges.setdefault(edkey, []).append(edge_keys[OTHER_INDEX[i]])
-
- for edkey in seams:
- edges[edkey] = []
-
- # Collect edge loops here
- edge_loops = []
-
- for edkey, ed_adj in edges.items():
- if 0 < len(ed_adj) < 3: # 1 or 2
- # Seek the first edge
- context_loop = [edkey, ed_adj[0]]
- edge_loops.append(context_loop)
- if len(ed_adj) == 2:
- other_dir = ed_adj[1]
- else:
- other_dir = None
-
- ed_adj[:] = []
-
- flipped = False
-
- while 1:
- # from knowing the last 2, look for th next.
- ed_adj = edges[context_loop[-1]]
- if len(ed_adj) != 2:
-
- if other_dir and flipped == False: # the original edge had 2 other edges
- flipped = True # only flip the list once
- context_loop.reverse()
- ed_adj[:] = []
- context_loop.append(other_dir) # save 1 lookiup
-
- ed_adj = edges[context_loop[-1]]
- if len(ed_adj) != 2:
- ed_adj[:] = []
- break
- else:
- ed_adj[:] = []
- break
-
- i = ed_adj.index(context_loop[-2])
- context_loop.append(ed_adj[not i])
-
- # Dont look at this again
- ed_adj[:] = []
-
- return edge_loops
-
- def edge_loops_from_edges(self, edges=None):
- """
- Edge loops defined by edges
-
- Takes me.edges or a list of edges and returns the edge loops
-
- return a list of vertex indices.
- [ [1, 6, 7, 2], ...]
-
- closed loops have matching start and end values.
- """
- line_polys = []
-
- # Get edges not used by a face
- if edges is None:
- edges = self.edges
-
- if not hasattr(edges, "pop"):
- edges = edges[:]
-
- edge_dict = {ed.key: ed for ed in self.edges if ed.select}
-
- while edges:
- current_edge = edges.pop()
- vert_end, vert_start = current_edge.vertices[:]
- line_poly = [vert_start, vert_end]
-
- ok = True
- while ok:
- ok = False
- #for i, ed in enumerate(edges):
- i = len(edges)
- while i:
- i -= 1
- ed = edges[i]
- v1, v2 = ed.vertices
- if v1 == vert_end:
- line_poly.append(v2)
- vert_end = line_poly[-1]
- ok = 1
- del edges[i]
- # break
- elif v2 == vert_end:
- line_poly.append(v1)
- vert_end = line_poly[-1]
- ok = 1
- del edges[i]
- #break
- elif v1 == vert_start:
- line_poly.insert(0, v2)
- vert_start = line_poly[0]
- ok = 1
- del edges[i]
- # break
- elif v2 == vert_start:
- line_poly.insert(0, v1)
- vert_start = line_poly[0]
- ok = 1
- del edges[i]
- #break
- line_polys.append(line_poly)
-
- return line_polys
-
class MeshEdge(StructRNA):
__slots__ = ()