Fix [#30684] Bmesh AddTorus.execute failure.
Done BMESH_TODO (use polys/loops instead of tessfaces).
This commit is contained in:
@@ -140,19 +140,23 @@ class AddTorus(Operator, object_utils.AddObjectHelper):
|
|||||||
self.minor_radius = extra_helper
|
self.minor_radius = extra_helper
|
||||||
|
|
||||||
verts_loc, faces = add_torus(self.major_radius,
|
verts_loc, faces = add_torus(self.major_radius,
|
||||||
self.minor_radius,
|
self.minor_radius,
|
||||||
self.major_segments,
|
self.major_segments,
|
||||||
self.minor_segments)
|
self.minor_segments)
|
||||||
|
|
||||||
mesh = bpy.data.meshes.new("Torus")
|
mesh = bpy.data.meshes.new("Torus")
|
||||||
|
|
||||||
mesh.vertices.add(len(verts_loc) // 3)
|
mesh.vertices.add(len(verts_loc) // 3)
|
||||||
|
|
||||||
# BMESH_TODO, use polygons
|
nbr_loops = len(faces)
|
||||||
mesh.faces.add(len(faces) // 4)
|
nbr_polys = nbr_loops // 4
|
||||||
|
mesh.loops.add(nbr_loops)
|
||||||
|
mesh.polygons.add(nbr_polys)
|
||||||
|
|
||||||
mesh.vertices.foreach_set("co", verts_loc)
|
mesh.vertices.foreach_set("co", verts_loc)
|
||||||
mesh.faces.foreach_set("vertices_raw", faces)
|
mesh.polygons.foreach_set("loop_start", range(0, nbr_loops, 4))
|
||||||
|
mesh.polygons.foreach_set("loop_total", (4,) * nbr_polys)
|
||||||
|
mesh.loops.foreach_set("vertex_index", faces)
|
||||||
mesh.update()
|
mesh.update()
|
||||||
|
|
||||||
object_utils.object_data_add(context, mesh, operator=self)
|
object_utils.object_data_add(context, mesh, operator=self)
|
||||||
|
Reference in New Issue
Block a user