diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-09-06 15:28:14 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-10-10 18:43:44 +0300 |
commit | e65784a0519e25e9ca560ab63758287cea45f123 (patch) | |
tree | 2452488152b951d029f68b34f20803254066b27b /release/scripts/modules/bpy_types.py | |
parent | 468474a653c976615306254dfcc33a85a0b872a1 (diff) |
Python API: add loop triangles access, remove tessfaces.
Loop triangles are tessellated triangles create from polygons, for renderers
or exporters that need to match Blender's polygon tesselation exactly. These
are a read-only runtime cache.
Tessfaces are a legacy data structure from before Blender supported n-gons,
and were already mostly removed from the C code.
Details on porting code to loop triangles is in the release notes.
Differential Revision: https://developer.blender.org/D3539
Diffstat (limited to 'release/scripts/modules/bpy_types.py')
-rw-r--r-- | release/scripts/modules/bpy_types.py | 32 |
1 files changed, 9 insertions, 23 deletions
diff --git a/release/scripts/modules/bpy_types.py b/release/scripts/modules/bpy_types.py index 913de92ff6d..9fe45d223f5 100644 --- a/release/scripts/modules/bpy_types.py +++ b/release/scripts/modules/bpy_types.py @@ -468,7 +468,7 @@ class MeshEdge(StructRNA): return ord_ind(*tuple(self.vertices)) -class MeshTessFace(StructRNA): +class MeshLoopTriangle(StructRNA): __slots__ = () @property @@ -476,32 +476,18 @@ class MeshTessFace(StructRNA): """The midpoint of the face.""" face_verts = self.vertices[:] mesh_verts = self.id_data.vertices - if len(face_verts) == 3: - return (mesh_verts[face_verts[0]].co + - mesh_verts[face_verts[1]].co + - mesh_verts[face_verts[2]].co - ) / 3.0 - else: - return (mesh_verts[face_verts[0]].co + - mesh_verts[face_verts[1]].co + - mesh_verts[face_verts[2]].co + - mesh_verts[face_verts[3]].co - ) / 4.0 + return (mesh_verts[face_verts[0]].co + + mesh_verts[face_verts[1]].co + + mesh_verts[face_verts[2]].co + ) / 3.0 @property def edge_keys(self): verts = self.vertices[:] - if len(verts) == 3: - return (ord_ind(verts[0], verts[1]), - ord_ind(verts[1], verts[2]), - ord_ind(verts[2], verts[0]), - ) - else: - 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]), - ) + return (ord_ind(verts[0], verts[1]), + ord_ind(verts[1], verts[2]), + ord_ind(verts[2], verts[0]), + ) class MeshPolygon(StructRNA): |