10class FilledWaveformBuilder;
123 glm::vec4
color { 0.65F, 0.65F, 0.65F, 1.F };
124 uint8_t decimal_places { 2 };
125 float label_h { 0.055F };
126 float label_w { 0.12F };
127 std::string name_prefix {
"tick" };
139 m_x.push_back({ .roles = { role }, .range = std::move(range), .palette = {} });
148 m_x.push_back({ .roles = { role }, .range = std::move(range), .palette = palette });
157 m_x.push_back({ .roles = std::move(roles), .range = std::move(range), .palette = {} });
164 Series&
x(std::vector<Role> roles,
AxisRange range, std::initializer_list<glm::vec3> palette)
166 m_x.push_back({ .roles = std::move(roles), .range = std::move(range), .palette = palette });
175 m_y.push_back({ .roles = { role }, .range = std::move(range), .palette = {} });
184 m_y.push_back({ .roles = { role }, .range = std::move(range), .palette = palette });
193 m_y.push_back({ .roles = std::move(roles), .range = std::move(range), .palette = {} });
200 Series&
y(std::vector<Role> roles,
AxisRange range, std::initializer_list<glm::vec3> palette)
202 m_y.push_back({ .roles = std::move(roles), .range = std::move(range), .palette = palette });
211 m_z.push_back({ .roles = { role }, .range = std::move(range), .palette = {} });
220 m_z.push_back({ .roles = { role }, .range = std::move(range), .palette = palette });
229 m_z.push_back({ .roles = std::move(roles), .range = std::move(range), .palette = {} });
236 Series&
z(std::vector<Role> roles,
AxisRange range, std::initializer_list<glm::vec3> palette)
238 m_z.push_back({ .roles = std::move(roles), .range = std::move(range), .palette = palette });
254 m_palette.insert(m_palette.end(), colors.begin(), colors.end());
260 m_palette.push_back(c);
275 m_background_bounds = bounds;
276 m_background_color =
color;
277 m_has_background =
true;
294 m_plot_bounds = bounds;
304 glm::vec4
color = { 0.85F, 0.85F, 0.85F, 1.F },
305 std::string
name = {})
307 m_labels.push_back(plot_label(std::move(text), bounds,
color, std::move(
name)));
316 m_labels.push_back(std::move(spec));
327 uint8_t decimal_places = 2,
328 glm::vec4
color = { 0.65F, 0.65F, 0.65F, 1.F })
330 m_ticks.push_back(TickRequest {
332 .range = std::nullopt,
336 .decimal_places = decimal_places,
337 .name_prefix =
"x_tick",
349 uint8_t decimal_places = 2,
350 glm::vec4
color = { 0.65F, 0.65F, 0.65F, 1.F })
352 m_ticks.push_back(TickRequest {
354 .range = std::move(range),
358 .decimal_places = decimal_places,
359 .name_prefix =
"x_tick",
371 uint8_t decimal_places = 2,
372 glm::vec4
color = { 0.65F, 0.65F, 0.65F, 1.F })
374 m_ticks.push_back(TickRequest {
376 .range = std::nullopt,
380 .decimal_places = decimal_places,
381 .name_prefix =
"y_tick",
393 uint8_t decimal_places = 2,
394 glm::vec4
color = { 0.65F, 0.65F, 0.65F, 1.F })
396 m_ticks.push_back(TickRequest {
398 .range = std::move(range),
402 .decimal_places = decimal_places,
403 .name_prefix =
"y_tick",
415 uint8_t decimal_places = 2,
416 glm::vec4
color = { 0.65F, 0.65F, 0.65F, 1.F })
418 m_ticks.push_back(TickRequest {
419 .axis = TickAxis::Explicit,
420 .range = std::move(range),
424 .decimal_places = decimal_places,
425 .name_prefix =
"tick",
446 Series&
legend(glm::vec2 origin, std::initializer_list<LegendEntry> entries)
452 m_legend = std::move(spec);
461 m_legend = std::move(spec);
478 [[nodiscard]]
const std::vector<AxisMapping>&
x_mappings()
const {
return m_x; }
479 [[nodiscard]]
const std::vector<AxisMapping>&
y_mappings()
const {
return m_y; }
480 [[nodiscard]]
const std::vector<AxisMapping>&
z_mappings()
const {
return m_z; }
481 [[nodiscard]]
const std::vector<glm::vec3>&
palette()
const {
return m_palette; }
486 [[nodiscard]]
const std::optional<Kinesis::AABB2D>&
plot_bounds()
const {
return m_plot_bounds; }
487 [[nodiscard]]
const std::vector<LabelSpec>&
labels()
const {
return m_labels; }
488 [[nodiscard]]
const std::optional<LegendSpec>&
legend_spec()
const {
return m_legend; }
493 [[nodiscard]] std::vector<TickLabelsSpec> resolved_tick_labels()
const;
496 std::vector<AxisMapping>
m_x;
497 std::vector<AxisMapping>
m_y;
498 std::vector<AxisMapping>
m_z;
500 glm::vec3 m_background_color {};
501 bool m_has_background {};
535 : m_state(
std::move(state))
550 float m_thickness { 1.5F };
566 : m_state(
std::move(state))
581 float m_point_size { 4.F };
598 : m_state(
std::move(state))
627 : m_state(
std::move(state))
647 float m_baseline { 0.F };
PrimitiveTopology
Vertex assembly primitive topology.
Role
Semantic role of the dimension.
Axis-aligned bounding rectangle in a 2D coordinate space.