cgv
Loading...
Searching...
No Matches
box_render_data_base.h
1
#pragma once
2
3
#include "render_data_base.h"
4
5
namespace
cgv
{
6
namespace
render {
7
12
template
<
class
RendererType,
class
RenderStyleType,
typename
ColorType = rgb>
13
class
box_render_data_base
:
public
render_data_base
<RendererType, RenderStyleType, ColorType> {
14
private
:
15
// Base class we're going to use virtual functions from
16
typedef
render_data_base<RendererType, RenderStyleType, ColorType>
super
;
17
18
protected
:
20
bool
transfer
(
context
& ctx, RendererType& r)
override
{
21
if
(
super::transfer
(ctx, r)) {
22
CGV_RDB_TRANSFER_ARRAY(extent,
extents
);
23
CGV_RDB_TRANSFER_ARRAY(translation,
translations
);
24
CGV_RDB_TRANSFER_ARRAY(rotation,
rotations
);
25
return
true
;
26
}
27
return
false
;
28
}
29
30
public
:
32
std::vector<vec3>
extents
;
34
std::vector<vec3>
translations
;
36
std::vector<quat>
rotations
;
37
38
void
clear() {
39
super::clear
();
40
extents
.clear();
41
translations
.clear();
42
rotations
.clear();
43
}
44
45
void
add_extent(
const
vec3
& extent) {
46
extents
.push_back(extent);
47
}
48
49
void
add_translation(
const
vec3
& translation) {
50
translations
.push_back(translation);
51
}
52
53
void
add_rotation(
const
quat
& rotation) {
54
rotations
.push_back(rotation);
55
}
56
57
// Explicitly use add from the base class since it is shadowed by the overloaded versions
58
using
super::add;
59
60
void
add(
const
vec3
& position,
const
vec3
& extent) {
61
super::add_position(position);
62
add_extent(extent);
63
}
64
65
void
add(
const
vec3
& position,
const
vec3
& extent,
const
quat
& rotation) {
66
super::add_position(position);
67
add_extent(extent);
68
add_rotation(rotation);
69
}
70
71
void
add(
const
vec3
& position,
const
vec3
& extent,
const
ColorType& color) {
72
add(position, extent);
73
super::add_color(color);
74
}
75
76
void
add(
const
vec3
& translation,
const
quat
& rotation) {
77
add_translation(translation);
78
add_rotation(rotation);
79
}
80
81
void
fill_extents(
const
vec3
& extent) {
82
super::fill
(
extents
, extent);
83
}
84
85
void
fill_translations(
const
vec3
& translation) {
86
super::fill
(
translations
, translation);
87
}
88
89
void
fill_rotations(
const
quat
& rotation) {
90
super::fill
(
rotations
, rotation);
91
}
92
};
93
94
}
95
}
cgv::math::fvec< float, 3 >
cgv::render::box_render_data_base
A base class for storing render data usable with the box_renderer and box_wire_renderer.
Definition
box_render_data_base.h:13
cgv::render::box_render_data_base::rotations
std::vector< quat > rotations
array of rotations
Definition
box_render_data_base.h:36
cgv::render::box_render_data_base::translations
std::vector< vec3 > translations
array of translations
Definition
box_render_data_base.h:34
cgv::render::box_render_data_base::extents
std::vector< vec3 > extents
array of extents
Definition
box_render_data_base.h:32
cgv::render::box_render_data_base::transfer
bool transfer(context &ctx, RendererType &r) override
See render_data_base::transfer.
Definition
box_render_data_base.h:20
cgv::render::context
base class for all drawables, which is independent of the used rendering API.
Definition
context.h:621
cgv::render::render_data_base
A base class for storing render data and style usable with the default renderers provided in the cgv:...
Definition
render_data_base.h:66
cgv::render::render_data_base::transfer
virtual bool transfer(context &ctx, RendererType &r)
Transfers the data stored in members to the attribute array.
Definition
render_data_base.h:85
cgv::render::render_data_base::clear
void clear()
Clear the stored data and set state out of date.
Definition
render_data_base.h:172
cgv::render::render_data_base::fill
void fill(std::vector< T > &vector, const T &value)
Template for filling a member array to the size of the render data.
Definition
render_data_base.h:138
cgv
the cgv namespace
Definition
print.h:11
cgv::quat
cgv::math::quaternion< float > quat
declare type of quaternion
Definition
quaternion.h:370
cgv::vec3
cgv::math::fvec< float, 3 > vec3
declare type of 3d single precision floating point vectors
Definition
fvec.h:669
libs
cgv_gl
box_render_data_base.h
Generated by
1.9.8