Unravel Engine C++ Reference
Loading...
Searching...
No Matches
parametric_mesh.hpp
Go to the documentation of this file.
1
#ifndef GENERATOR_PARAMETRICMESH_HPP
2
#define GENERATOR_PARAMETRICMESH_HPP
3
4
#include <functional>
5
6
#include "
mesh_vertex.hpp
"
7
#include "
triangle.hpp
"
8
9
namespace
generator
10
{
11
13
class
parametric_mesh_t
14
{
15
public
:
16
class
triangles_t
17
{
18
public
:
19
triangle_t
generate
()
const
;
20
bool
done
()
const
noexcept
;
21
void
next
();
22
23
private
:
24
explicit
triangles_t
(
const
parametric_mesh_t
& mesh);
25
26
const
parametric_mesh_t
* mesh_;
27
28
gml::ivec2 i_;
29
30
bool
even_;
31
32
friend
class
parametric_mesh_t
;
33
};
34
35
class
vertices_t
36
{
37
public
:
38
mesh_vertex_t
generate
()
const
;
39
bool
done
()
const
noexcept
;
40
void
next
();
41
42
private
:
43
explicit
vertices_t
(
const
parametric_mesh_t
& mesh);
44
45
const
parametric_mesh_t
* mesh_;
46
47
gml::ivec2 i_;
48
49
friend
class
parametric_mesh_t
;
50
};
51
55
explicit
parametric_mesh_t
(
const
std::function<
mesh_vertex_t
(
const
gml::dvec2& t)>& eval,
56
const
gml::ivec2&
segments
= {16, 16})
noexcept
;
57
58
triangles_t
triangles
() const noexcept;
59
60
vertices_t
vertices
() const noexcept;
61
62
private:
63
std
::function<
mesh_vertex_t
(const
gml
::dvec2& t)> eval_;
64
65
gml
::ivec2 segments_;
66
67
gml
::dvec2 delta_;
68
};
69
}
// namespace generator
70
71
#endif
generator::mesh_vertex_t
Definition
mesh_vertex.hpp:10
generator::parametric_mesh_t::triangles_t
Definition
parametric_mesh.hpp:17
generator::parametric_mesh_t::triangles_t::done
bool done() const noexcept
Definition
parametric_mesh.cpp:30
generator::parametric_mesh_t::triangles_t::generate
triangle_t generate() const
Definition
parametric_mesh.cpp:9
generator::parametric_mesh_t::triangles_t::next
void next()
Definition
parametric_mesh.cpp:37
generator::parametric_mesh_t::vertices_t
Definition
parametric_mesh.hpp:36
generator::parametric_mesh_t::vertices_t::next
void next()
Definition
parametric_mesh.cpp:74
generator::parametric_mesh_t::vertices_t::generate
mesh_vertex_t generate() const
Definition
parametric_mesh.cpp:59
generator::parametric_mesh_t::vertices_t::done
bool done() const noexcept
Definition
parametric_mesh.cpp:67
generator::parametric_mesh_t
A mesh with values evaluated using a callback function.
Definition
parametric_mesh.hpp:14
generator::parametric_mesh_t::vertices
vertices_t vertices() const noexcept
Definition
parametric_mesh.cpp:100
generator::parametric_mesh_t::triangles
triangles_t triangles() const noexcept
Definition
parametric_mesh.cpp:95
generator::parametric_mesh_t::parametric_mesh_t
parametric_mesh_t(const std::function< mesh_vertex_t(const gml::dvec2 &t)> &eval, const gml::ivec2 &segments={16, 16}) noexcept
Definition
parametric_mesh.cpp:87
generator::triangle_t
Definition
triangle.hpp:10
mesh_vertex.hpp
generator
Definition
any_generator.hpp:7
gml
Definition
math.hpp:13
std
Definition
render_view_keys.h:37
segments
const segment_list * segments
Definition
text_component.cpp:442
triangle.hpp
UnravelEngine
UnravelEngine
engine
engine
rendering
generator
parametric_mesh.hpp
Generated by
1.12.0