def mesh(self) -> MeshTransformer: """Returns geometry as one :class:`MeshTransformer` object.""" faces = self.faces() mesh = MeshVertexMerger() for vertices in self: mesh.add_mesh(vertices=vertices, faces=faces) # type: ignore return MeshTransformer.from_builder(mesh)
def cubes(self) -> Iterable[MeshTransformer]: """ Yields all cubes of the menger sponge as individual :class:`MeshTransformer` objects. """ faces = self.faces() for vertices in self: mesh = MeshVertexMerger() mesh.add_mesh(vertices=vertices, faces=faces) yield MeshTransformer.from_builder(mesh)
def test_vertex_merger(): pyramid = SierpinskyPyramid(level=4, sides=3) faces = pyramid.faces() mesh = MeshVertexMerger() for vertices in pyramid: mesh.add_mesh(vertices=vertices, faces=faces) assert len(mesh.vertices) == 514 assert len(mesh.faces) == 1024
def mesh(self) -> MeshVertexMerger: """ Returns geometry as one single MESH entity. Returns: MeshVertexMerger() """ faces = self.faces() mesh = MeshVertexMerger() for vertices in self: mesh.add_mesh(vertices=vertices, faces=faces) return mesh