code: def from_incomplete_data(cls, vertices, normals=(), texcoords=(), **kwargs):
          
          normals = normals if hasattr(texcoords, '__iter__') and len(normals) else vertutils.calculate_normals(vertices)
          texcoords = texcoords if hasattr(texcoords, '__iter__') and len(texcoords) else np.zeros((vertices.shape[0], 2), dtype=np.float32)
          return cls(arrays=(vertices, normals, texcoords), **kwargs)
docs: Return a Mesh with (vertices, normals, texcoords) as arrays, in that order.
             Useful for when you want a standardized array location format across different amounts of info in each mesh.