Unravel Engine C++ Reference
Loading...
Searching...
No Matches
translate_mesh.hpp
Go to the documentation of this file.
1#ifndef GENERATOR_TRANSLATEMESH_HPP
2#define GENERATOR_TRANSLATEMESH_HPP
3
4#include "transform_mesh.hpp"
5
6namespace generator
7{
8
10template<typename mesh_t>
12{
13private:
15 impl_t transform_mesh_;
16
17public:
20 translate_mesh_t(mesh_t mesh, const gml::dvec3& delta)
21 : transform_mesh_{std::move(mesh),
22 [delta](mesh_vertex_t& value)
23 {
24 value.position += delta;
25 }}
26 {
27 }
28
30
31 triangles_t triangles() const noexcept
32 {
33 return transform_mesh_.triangles();
34 }
35
37
38 vertices_t vertices() const noexcept
39 {
40 return transform_mesh_.vertices();
41 }
42};
43
44template<typename mesh_t>
45translate_mesh_t<mesh_t> translate_mesh(mesh_t mesh, const gml::dvec3& delta)
46{
47 return translate_mesh_t<mesh_t>{std::move(mesh), delta};
48}
49} // namespace generator
50
51#endif
Apply a mutator function to each vertex.
typename impl_t::triangles_t triangles_t
Translates the position of each vertex by given amount.
vertices_t vertices() const noexcept
typename impl_t::triangles_t triangles_t
typename impl_t::vertices_t vertices_t
triangles_t triangles() const noexcept
translate_mesh_t(mesh_t mesh, const gml::dvec3 &delta)
translate_mesh_t< mesh_t > translate_mesh(mesh_t mesh, const gml::dvec3 &delta)