in jsuarez/extra/embyr_deprecated/embyr/kivy3/objects/mesh.py [0:0]
def create_mesh(self):
""" Create real mesh object from the geometry and material """
vertices = []
indices = []
idx = 0
for face in self.geometry.faces:
for i, k in enumerate(['a', 'b', 'c']):
v_idx = getattr(face, k)
vertex = self.geometry.vertices[v_idx]
vertices.extend(vertex)
try:
normal = face.vertex_normals[i]
except IndexError:
normal = Vector3([0, 0, 0])
vertices.extend(normal)
try:
tex_coords = self.geometry.face_vertex_uvs[0][idx]
vertices.extend(tex_coords)
except IndexError:
vertices.extend([0, 0])
indices.append(idx)
idx += 1
kw = {"vertices": vertices, "indices": indices,
"fmt": self.vertex_format, "mode": "triangles"
}
if self.material.map:
kw["texture"] = self.material.map
self._mesh = KivyMesh(**kw)