3 #include "group_renderer.h"
5 #include "gl/lib_begin.h"
9 class CGV_API point_renderer;
15 extern CGV_API point_renderer&
ref_point_renderer(context& ctx,
int ref_count_change = 0);
34 float default_depth_offset;
57 bool has_group_point_sizes;
58 bool has_indexed_colors;
59 bool has_depth_offsets;
60 float reference_point_size;
74 void set_reference_point_size(
float _reference_point_size);
76 void set_y_view_angle(
float y_view_angle);
78 template <
typename T =
float>
79 void set_point_size_array(
const context& ctx,
const std::vector<T>& point_sizes) { has_point_sizes =
true; set_attribute_array(ctx, ref_prog().get_attribute_location(ctx,
"point_size"), point_sizes); }
81 template <
typename T =
float>
82 void set_depth_offset_array(
const context& ctx,
const std::vector<T>& depth_offsets) { has_depth_offsets =
true; set_attribute_array(ctx, ref_prog().get_attribute_location(ctx,
"depth_offset"), depth_offsets); }
84 template <
typename T =
unsigned,
typename C = cgv::media::color<
float,cgv::media::RGB,cgv::media::OPACITY> >
85 void set_indexed_color_array(
const context& ctx,
const std::vector<T>& color_indices,
const std::vector<C>& palette) {
86 has_indexed_colors =
true;
87 set_attribute_array(ctx, ref_prog().get_attribute_location(ctx,
"color_index"), color_indices);
88 ref_prog().set_uniform_array(ctx,
"palette", palette);
91 template <
typename T =
float>
92 void set_group_point_sizes(
const context& ctx,
const std::vector<T>& group_point_sizes) { has_group_point_sizes =
true; ref_prog().set_uniform_array(ctx,
"group_point_sizes", group_point_sizes); }
94 bool validate_attributes(
const context& ctx)
const;
96 bool enable(context& ctx);
98 bool disable(context& ctx);
100 void draw(context& ctx,
size_t start,
size_t count,
101 bool use_strips =
false,
bool use_adjacency =
false, uint32_t strip_restart_index = -1);
103 struct CGV_API point_render_style_reflect :
public point_render_style
111 #include <cgv/config/lib_end.h>
base class for all render styles
Definition: renderer.h:16
float percentual_halo_width
set to 0 in constructor
Definition: point_renderer.h:41
rgba halo_color
color of halo with opacity channel
Definition: point_renderer.h:43
Definition: group_renderer.h:15
point_renderer & ref_point_renderer(context &ctx, int ref_count_change)
reference to a singleton point renderer that can be shared among drawables
Definition: point_renderer.cxx:8
float halo_color_strength
strength in [0,1] of halo color with respect to color of primitive
Definition: point_renderer.h:45
attribute array manager used to upload arrays to gpu
Definition: renderer.h:21
Definition: reflection_handler.h:63
bool screen_aligned
whether to span point splat in screen aligned coordinate system
Definition: point_renderer.h:29
Definition: point_renderer.h:19
bool measure_point_size_in_pixel
whether to measure point size in pixels or in world space relative to reference_pixel_size passed to ...
Definition: point_renderer.h:27
renderer that supports point splatting
Definition: point_renderer.h:54
float blend_width_in_pixel
set to 1 in constructor
Definition: point_renderer.h:37
bool blend_points
set to true in constructor
Definition: point_renderer.h:47
float halo_width_in_pixel
set to 0 in constructor
Definition: point_renderer.h:39
this reflection traits implementation is used for external self_reflect implementations of instances ...
Definition: reflect_extern.h:28
void set_depth_offset_array(const context &ctx, const std::vector< T > &depth_offsets)
set per point depth offsets
Definition: point_renderer.h:82
bool use_group_point_size
whether to use the
Definition: point_renderer.h:25
the cgv namespace
Definition: vr_calib.cxx:9
Definition: context.h:525
abstract renderer class that provides functionality for grouping primitives
Definition: group_renderer.h:26