Unravel Engine C++ Reference
Loading...
Searching...
No Matches
dodecahedron_mesh.hpp
Go to the documentation of this file.
1
#ifndef GENERATOR_DODECAHEDRON_HPP
2
#define GENERATOR_DODECAHEDRON_HPP
3
4
#include <array>
5
#include <memory>
6
7
#include "
convex_polygon_mesh.hpp
"
8
#include "
mesh_vertex.hpp
"
9
#include "
triangle.hpp
"
10
#include "
utils.hpp
"
11
12
namespace
generator
13
{
14
18
class
dodecahedron_mesh_t
19
{
20
public
:
21
class
triangles_t
22
{
23
public
:
24
bool
done
()
const
noexcept
;
25
triangle_t
generate
()
const
;
26
void
next
();
27
28
private
:
29
const
dodecahedron_mesh_t
* mesh_;
30
31
int
face_index_;
32
33
// Needs be a shared_ptr in order to make copy/move not to mess up the
34
// internal pointer in triangles_.
35
std::shared_ptr<const convex_polygon_mesh_t> face_mesh_;
36
37
typename
triangle_generator_type<convex_polygon_mesh_t>::type
triangles_;
38
39
explicit
triangles_t
(
const
dodecahedron_mesh_t
& mesh)
noexcept
;
40
41
friend
class
dodecahedron_mesh_t
;
42
};
43
44
class
vertices_t
45
{
46
public
:
47
bool
done
()
const
noexcept
;
48
mesh_vertex_t
generate
()
const
;
49
void
next
();
50
51
private
:
52
const
dodecahedron_mesh_t
* mesh_;
53
54
int
face_index_;
55
56
// Needs be a shared_ptr in order to make copy/move not to mess up the
57
// internal pointer in triangles_.
58
std::shared_ptr<const convex_polygon_mesh_t> face_mesh_;
59
60
typename
vertex_generator_type<convex_polygon_mesh_t>::type
vertices_;
61
62
explicit
vertices_t
(
const
dodecahedron_mesh_t
& mesh)
noexcept
;
63
64
friend
class
dodecahedron_mesh_t
;
65
};
66
67
private
:
68
double
radius_;
69
70
int
segments_;
71
72
int
rings_;
73
74
int
face_vertex_count_;
75
76
public
:
82
explicit
dodecahedron_mesh_t
(
double
radius = 1.0,
int
segments
= 1,
int
rings = 1) noexcept;
83
84
triangles_t
triangles
() const noexcept;
85
86
vertices_t
vertices
() const noexcept;
87
};
88
}
// namespace generator
89
90
#endif
generator::dodecahedron_mesh_t::triangles_t
Definition
dodecahedron_mesh.hpp:22
generator::dodecahedron_mesh_t::triangles_t::generate
triangle_t generate() const
Definition
dodecahedron_mesh.cpp:69
generator::dodecahedron_mesh_t::triangles_t::done
bool done() const noexcept
Definition
dodecahedron_mesh.cpp:64
generator::dodecahedron_mesh_t::triangles_t::next
void next()
Definition
dodecahedron_mesh.cpp:85
generator::dodecahedron_mesh_t::vertices_t
Definition
dodecahedron_mesh.hpp:45
generator::dodecahedron_mesh_t::vertices_t::next
void next()
Definition
dodecahedron_mesh.cpp:127
generator::dodecahedron_mesh_t::vertices_t::generate
mesh_vertex_t generate() const
Definition
dodecahedron_mesh.cpp:118
generator::dodecahedron_mesh_t::vertices_t::done
bool done() const noexcept
Definition
dodecahedron_mesh.cpp:113
generator::dodecahedron_mesh_t
Definition
dodecahedron_mesh.hpp:19
generator::dodecahedron_mesh_t::triangles
triangles_t triangles() const noexcept
Definition
dodecahedron_mesh.cpp:153
generator::dodecahedron_mesh_t::vertices
vertices_t vertices() const noexcept
Definition
dodecahedron_mesh.cpp:158
generator::dodecahedron_mesh_t::dodecahedron_mesh_t
dodecahedron_mesh_t(double radius=1.0, int segments=1, int rings=1) noexcept
Definition
dodecahedron_mesh.cpp:145
generator::mesh_vertex_t
Definition
mesh_vertex.hpp:10
generator::triangle_t
Definition
triangle.hpp:10
convex_polygon_mesh.hpp
mesh_vertex.hpp
generator
Definition
any_generator.hpp:7
segments
const segment_list * segments
Definition
text_component.cpp:442
generator::triangle_generator_type::type
void type
Definition
utils.hpp:44
generator::vertex_generator_type::type
void type
Definition
utils.hpp:59
triangle.hpp
utils.hpp
UnravelEngine
UnravelEngine
engine
engine
rendering
generator
dodecahedron_mesh.hpp
Generated by
1.12.0