Unravel Engine C++ Reference
Loading...
Searching...
No Matches
teapot_mesh.hpp
Go to the documentation of this file.
1
#ifndef GENERATOR_TEAPOTMESH_HPP
2
#define GENERATOR_TEAPOTMESH_HPP
3
4
#include <array>
5
#include <memory>
6
7
#include "
bezier_mesh.hpp
"
8
#include "
mesh_vertex.hpp
"
9
#include "
triangle.hpp
"
10
#include "
utils.hpp
"
11
12
namespace
generator
13
{
14
18
class
teapot_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
teapot_mesh_t
* mesh_t;
30
31
int
index_;
32
33
std::shared_ptr<const bezier_mesh_t<4, 4>> patch_mesh_;
34
35
typename
triangle_generator_type<bezier_mesh_t<4, 4>
>
::type
triangles_;
36
37
explicit
triangles_t
(
const
teapot_mesh_t
& mesh)
noexcept
;
38
39
friend
class
teapot_mesh_t
;
40
};
41
42
class
vertices_t
43
{
44
public
:
45
bool
done
()
const
noexcept
;
46
mesh_vertex_t
generate
()
const
;
47
void
next
();
48
49
private
:
50
const
teapot_mesh_t
* mesh_;
51
52
int
index_;
53
54
// Needs be a shared_ptr in order to make copy/move not to mess up the
55
// internal pointer in triangles_.
56
std::shared_ptr<const bezier_mesh_t<4, 4>> patch_mesh_;
57
58
typename
vertex_generator_type<bezier_mesh_t<4, 4>
>
::type
vertices_;
59
60
explicit
vertices_t
(
const
teapot_mesh_t
& mesh)
noexcept
;
61
62
friend
class
teapot_mesh_t
;
63
};
64
69
explicit
teapot_mesh_t
(
int
segments
= 8) noexcept;
70
71
triangles_t
triangles
() const noexcept;
72
73
vertices_t
vertices
() const noexcept;
74
75
private:
76
int
segments_;
77
78
int
patch_vertex_count_;
79
};
80
}
// namespace generator
81
82
#endif
bezier_mesh.hpp
type
manifold_type type
Definition
bullet_backend.cpp:87
generator::mesh_vertex_t
Definition
mesh_vertex.hpp:10
generator::teapot_mesh_t::triangles_t
Definition
teapot_mesh.hpp:22
generator::teapot_mesh_t::triangles_t::next
void next()
Definition
teapot_mesh.cpp:180
generator::teapot_mesh_t::triangles_t::done
bool done() const noexcept
Definition
teapot_mesh.cpp:159
generator::teapot_mesh_t::triangles_t::generate
triangle_t generate() const
Definition
teapot_mesh.cpp:164
generator::teapot_mesh_t::vertices_t
Definition
teapot_mesh.hpp:43
generator::teapot_mesh_t::vertices_t::generate
mesh_vertex_t generate() const
Definition
teapot_mesh.cpp:215
generator::teapot_mesh_t::vertices_t::done
bool done() const noexcept
Definition
teapot_mesh.cpp:210
generator::teapot_mesh_t::vertices_t::next
void next()
Definition
teapot_mesh.cpp:220
generator::teapot_mesh_t
Definition
teapot_mesh.hpp:19
generator::teapot_mesh_t::vertices
vertices_t vertices() const noexcept
Definition
teapot_mesh.cpp:249
generator::teapot_mesh_t::triangles
triangles_t triangles() const noexcept
Definition
teapot_mesh.cpp:244
generator::teapot_mesh_t::teapot_mesh_t
teapot_mesh_t(int segments=8) noexcept
Definition
teapot_mesh.cpp:238
generator::triangle_t
Definition
triangle.hpp:10
mesh_vertex.hpp
generator
Definition
any_generator.hpp:7
segments
const segment_list * segments
Definition
text_component.cpp:442
generator::triangle_generator_type
Definition
utils.hpp:42
generator::vertex_generator_type
Definition
utils.hpp:57
triangle.hpp
utils.hpp
UnravelEngine
UnravelEngine
engine
engine
rendering
generator
teapot_mesh.hpp
Generated by
1.12.0