Unravel Engine C++ Reference
Loading...
Searching...
No Matches
translate_shape.hpp
Go to the documentation of this file.
1#ifndef GENERATOR_TRANSLATESHAPE_HPP
2#define GENERATOR_TRANSLATESHAPE_HPP
3
4#include "math.hpp"
5
6#include "transform_shape.hpp"
7
8namespace generator
9{
10
12template<typename shape_t>
14{
15private:
17 impl_t transform_shape_;
18
19public:
22 translate_shape_t(shape_t shape, const gml::dvec2& delta)
23 : transform_shape_{std::move(shape),
24 [delta](shape_vertex_t& value)
25 {
26 value.position += delta;
27 }}
28 {
29 }
30
31 using edges_t = typename impl_t::edges_t;
32
33 edges_t edges() const noexcept
34 {
35 return transform_shape_.edges();
36 }
37
39
40 vertices_t vertices() const noexcept
41 {
42 return transform_shape_.vertices();
43 }
44};
45
46template<typename shape_t>
47translate_shape_t<shape_t> translate_shape(shape_t shape, const gml::dvec2& delta)
48{
49 return translate_shape_t<shape_t>{std::move(shape), delta};
50}
51} // namespace generator
52
53#endif
Apply a mutator function to each vertex.
typename impl_t::edges_t edges_t
Translates the position of each vertex by given amount.
edges_t edges() const noexcept
typename impl_t::edges_t edges_t
typename impl_t::vertices_t vertices_t
translate_shape_t(shape_t shape, const gml::dvec2 &delta)
vertices_t vertices() const noexcept
translate_shape_t< shape_t > translate_shape(shape_t shape, const gml::dvec2 &delta)