Unravel Engine C++ Reference
Loading...
Searching...
No Matches
scale_mesh.hpp
Go to the documentation of this file.
1
#ifndef GENERATOR_SCALEMESH_HPP
2
#define GENERATOR_SCALEMESH_HPP
3
4
#include "
transform_mesh.hpp
"
5
6
namespace
generator
7
{
8
10
template
<
typename
mesh_t>
11
class
scale_mesh_t
12
{
13
private
:
14
using
impl_t
=
transform_mesh_t<mesh_t>
;
15
impl_t
transform_mesh_;
16
17
public
:
20
scale_mesh_t
(mesh_t mesh,
const
gml::dvec3&
scale
)
21
: transform_mesh_{
std
::move(mesh),
22
[
scale
](
mesh_vertex_t
& value)
23
{
24
value.position *=
scale
;
25
value.normal = normalize(
scale
* value.normal);
26
}}
27
{
28
}
29
30
using
triangles_t
=
typename
impl_t::triangles_t
;
31
32
triangles_t
triangles
() const noexcept
33
{
34
return
transform_mesh_.triangles();
35
}
36
37
using
vertices_t
=
typename
impl_t::vertices_t
;
38
39
vertices_t
vertices
() const noexcept
40
{
41
return
transform_mesh_.vertices();
42
}
43
};
44
45
template
<
typename
mesh_t>
46
scale_mesh_t<mesh_t>
scale_mesh
(mesh_t mesh,
const
gml::dvec3& delta)
47
{
48
return
scale_mesh_t<mesh_t>
{std::move(mesh), delta};
49
}
50
}
// namespace generator
51
52
#endif
generator::mesh_vertex_t
Definition
mesh_vertex.hpp:10
generator::scale_mesh_t
Scales a mesh (keeps normals unit length)
Definition
scale_mesh.hpp:12
generator::scale_mesh_t::triangles
triangles_t triangles() const noexcept
Definition
scale_mesh.hpp:32
generator::scale_mesh_t::scale_mesh_t
scale_mesh_t(mesh_t mesh, const gml::dvec3 &scale)
Definition
scale_mesh.hpp:20
generator::scale_mesh_t::vertices_t
typename impl_t::vertices_t vertices_t
Definition
scale_mesh.hpp:37
generator::scale_mesh_t::vertices
vertices_t vertices() const noexcept
Definition
scale_mesh.hpp:39
generator::scale_mesh_t::triangles_t
typename impl_t::triangles_t triangles_t
Definition
scale_mesh.hpp:30
generator::transform_mesh_t::vertices_t
Definition
transform_mesh.hpp:22
generator::transform_mesh_t
Apply a mutator function to each vertex.
Definition
transform_mesh.hpp:15
generator::transform_mesh_t::triangles_t
typename impl_t::triangles_t triangles_t
Definition
transform_mesh.hpp:61
generator
Definition
any_generator.hpp:7
generator::scale_mesh
scale_mesh_t< mesh_t > scale_mesh(mesh_t mesh, const gml::dvec3 &delta)
Definition
scale_mesh.hpp:46
std
Hash specialization for batch_key to enable use in std::unordered_map.
Definition
render_view_keys.h:37
scale
std::vector< float > scale
Definition
particle_system_soa.cpp:376
transform_mesh.hpp
engine
engine
rendering
generator
scale_mesh.hpp
Generated by
1.12.0