Unravel Engine C++ Reference
Loading...
Searching...
No Matches
parametric_shape.cpp
Go to the documentation of this file.
1
#include "
parametric_shape.hpp
"
2
3
using namespace
generator
;
4
5
parametric_shape_t::edges_t::edges_t(
const
parametric_shape_t
& shape) : shape_{&
shape
}, i_{0}
6
{
7
}
8
9
edge_t
parametric_shape_t::edges_t::generate
()
const
10
{
11
if
(
done
())
12
throw
std::out_of_range(
"Done!"
);
13
14
return
edge_t
{{i_, i_ + 1}};
15
}
16
17
bool
parametric_shape_t::edges_t::done
() const noexcept
18
{
19
return
i_ == shape_->segments_;
20
}
21
22
void
parametric_shape_t::edges_t::next
()
23
{
24
if
(done())
25
throw
std::out_of_range(
"Done!"
);
26
++i_;
27
}
28
29
shape_vertex_t
parametric_shape_t::vertices_t::generate
()
const
30
{
31
if
(done())
32
throw
std::out_of_range(
"Done!"
);
33
34
return
shape_->eval_(i_ * shape_->delta_);
35
}
36
37
parametric_shape_t::vertices_t::vertices_t(
const
parametric_shape_t
& shape) : shape_{&shape}, i_{0}
38
{
39
}
40
41
bool
parametric_shape_t::vertices_t::done
() const noexcept
42
{
43
if
(shape_->segments_ == 0)
44
return
true
;
45
return
i_ == shape_->segments_ + 1;
46
}
47
48
void
parametric_shape_t::vertices_t::next
()
49
{
50
if
(done())
51
throw
std::out_of_range(
"Done!"
);
52
++i_;
53
}
54
55
parametric_shape_t::parametric_shape_t
(
const
std::function<
shape_vertex_t
(
double
)>& eval,
int
segments
) noexcept
56
: eval_{std::move(eval)}
57
, segments_{
segments
}
58
, delta_{1.0 /
segments
}
59
{
60
}
61
62
parametric_shape_t::edges_t
parametric_shape_t::edges
() const noexcept
63
{
64
return
edges_t
{*
this
};
65
}
66
67
parametric_shape_t::vertices_t
parametric_shape_t::vertices
() const noexcept
68
{
69
return
vertices_t
{*
this
};
70
}
generator::edge_t
Definition
edge.hpp:10
generator::parametric_shape_t::edges_t
Definition
parametric_shape.hpp:17
generator::parametric_shape_t::edges_t::generate
edge_t generate() const
Definition
parametric_shape.cpp:9
generator::parametric_shape_t::edges_t::next
void next()
Definition
parametric_shape.cpp:22
generator::parametric_shape_t::edges_t::done
bool done() const noexcept
Definition
parametric_shape.cpp:17
generator::parametric_shape_t::vertices_t
Definition
parametric_shape.hpp:34
generator::parametric_shape_t::vertices_t::done
bool done() const noexcept
Definition
parametric_shape.cpp:41
generator::parametric_shape_t::vertices_t::generate
shape_vertex_t generate() const
Definition
parametric_shape.cpp:29
generator::parametric_shape_t::vertices_t::next
void next()
Definition
parametric_shape.cpp:48
generator::parametric_shape_t
A shape with values evaluated using a callback function.
Definition
parametric_shape.hpp:14
generator::parametric_shape_t::parametric_shape_t
parametric_shape_t(const std::function< shape_vertex_t(double)> &eval, int segments=16) noexcept
Definition
parametric_shape.cpp:55
generator::parametric_shape_t::edges
edges_t edges() const noexcept
Definition
parametric_shape.cpp:62
generator::parametric_shape_t::vertices
vertices_t vertices() const noexcept
Definition
parametric_shape.cpp:67
generator::shape_vertex_t
Definition
shape_vertex.hpp:12
generator
Definition
any_generator.hpp:7
unravel::physics_property::shape
@ shape
parametric_shape.hpp
segments
const segment_list * segments
Definition
text_component.cpp:442
UnravelEngine
UnravelEngine
engine
engine
rendering
generator
parametric_shape.cpp
Generated by
1.12.0