Unravel Engine C++ Reference
Loading...
Searching...
No Matches
scale_path.hpp
Go to the documentation of this file.
1
#ifndef GENERATOR_SCALEPATH_HPP
2
#define GENERATOR_SCALEPATH_HPP
3
4
#include "
transform_path.hpp
"
5
6
namespace
generator
7
{
8
10
template
<
typename
path_t>
11
class
scale_path_t
12
{
13
private
:
14
using
impl_t
=
transform_path_t<path_t>
;
15
impl_t
transform_path_;
16
17
public
:
20
scale_path_t
(path_t path,
const
gml::dvec3&
scale
)
21
: transform_path_{
std
::move(path),
22
[
scale
](
path_vertex_t
& value)
23
{
24
value.position *=
scale
;
25
value.tangent = gml::normalize(
scale
* value.tangent);
26
value.normal = gml::normalize(
scale
* value.normal);
27
}}
28
{
29
}
30
31
using
edges_t
=
typename
impl_t::edges_t
;
32
33
edges_t
edges
() const noexcept
34
{
35
return
transform_path_.edges();
36
}
37
38
using
vertices_t
=
typename
impl_t::vertices_t
;
39
40
vertices_t
vertices
() const noexcept
41
{
42
return
transform_path_.vertices();
43
}
44
};
45
46
template
<
typename
path_t>
47
scale_path_t<path_t>
scale_path
(path_t path,
const
gml::dvec3&
scale
)
48
{
49
return
scale_path_t<path_t>
{std::move(path),
scale
};
50
}
51
}
// namespace generator
52
53
#endif
generator::path_vertex_t
Definition
path_vertex.hpp:10
generator::scale_path_t
Scales a path. Keeps tangents and normals unit length.
Definition
scale_path.hpp:12
generator::scale_path_t::edges_t
typename impl_t::edges_t edges_t
Definition
scale_path.hpp:31
generator::scale_path_t::vertices
vertices_t vertices() const noexcept
Definition
scale_path.hpp:40
generator::scale_path_t::vertices_t
typename impl_t::vertices_t vertices_t
Definition
scale_path.hpp:38
generator::scale_path_t::scale_path_t
scale_path_t(path_t path, const gml::dvec3 &scale)
Definition
scale_path.hpp:20
generator::scale_path_t::edges
edges_t edges() const noexcept
Definition
scale_path.hpp:33
generator::transform_path_t::vertices_t
Definition
transform_path.hpp:22
generator::transform_path_t
Apply a mutator function to each vertex.
Definition
transform_path.hpp:15
generator::transform_path_t::edges_t
typename impl_t::edges_t edges_t
Definition
transform_path.hpp:66
generator
Definition
any_generator.hpp:7
generator::scale_path
scale_path_t< path_t > scale_path(path_t path, const gml::dvec3 &scale)
Definition
scale_path.hpp:47
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_path.hpp
engine
engine
rendering
generator
scale_path.hpp
Generated by
1.12.0