1#ifndef GENERATOR_MERGEMESH_HPP
2#define GENERATOR_MERGEMESH_HPP
12template<
typename... Mesh>
20template<
typename Head,
typename... Tail>
30 return head_.generate();
33 triangle.
vertices += head_vertex_count_;
49 all_done_ = tail_.done() && head_.done();
56 int head_vertex_count_;
61 : head_{mesh.head_.triangles()}
62 , tail_(mesh.tail_.triangles())
63 , head_vertex_count_{
count(mesh.head_.vertices())}
64 , all_done_{tail_.done() && head_.done()}
77 return head_.generate();
78 return tail_.generate();
93 all_done_ = tail_.done() && head_.done();
103 : head_{mesh.head_.vertices()}
104 , tail_(mesh.tail_.vertices())
105 , all_done_{tail_.done() && head_.done()}
131template<
typename... Mesh>
Empty Mesh with zero vertices and triangles.
bool done() const noexcept
triangle_t generate() const
mesh_vertex_t generate() const
bool done() const noexcept
vertices_t vertices() const noexcept
triangles_t triangles() const noexcept
merge_mesh_t(Head head, Tail... tail)
Merges (concatenates) multiple meshes to to together.
gml::ivec3 vertices
Zero based indices of the triangle vertices in counterclockwise order.
int count(const generator_t &generator) noexcept
Counts the number of steps left in the generator.
merge_mesh_t< Mesh... > merge_mesh(Mesh... meshes)