cgv
Loading...
Searching...
No Matches
cgv::render::clod_point_renderer Class Reference

Classes

struct  Point

Public Member Functions

render_style * create_render_style () const
bool init (context &ctx)
bool enable (context &ctx)
 sets most uniforms
bool enable (context &ctx, const mat4 &reduction_model_view_matrix)
bool enable_buffer_manager (clod_point_buffer_manager &manager)
void disable_buffer_manager ()
bool disable (context &ctx)
void clear (cgv::render::context &ctx)
void draw (context &ctx, size_t start=0, size_t count=0)
 reduces and renders the input by calling reduce_points and draw_points
bool render (context &ctx, size_t start, size_t count)
void set_points (cgv::render::context &ctx, const Point *pnts, const size_t num_points)
 this method can be used if the data format of pnts matches with the internal format given by the Point struct
void set_points (cgv::render::context &ctx, const vec3 *positions, const rgb8 *colors, const uint8_t *lods, const size_t num_points, const unsigned stride=0)
 to use the clod point renderer lods are required, to generate them use the classes inside libs/pointcloud/octree.h
void set_frustum_extend (const float &fe)
void set_max_drawn_points (cgv::render::context &ctx, const unsigned max_points)
void set_pivot_point (const vec4 &pivot)
void set_render_style (const render_style &rs)
void manage_singelton (context &ctx, const std::string &renderer_name, int &ref_count, int ref_count_change)
void set_prog (shader_program &one_shot_prog)
 set a custom shader program that is used for one enable disable cycle
void reduce_buffer_init (context &ctx, bool reset_parameters=true)
 initializes reduce,
void reduce_buffer (context &ctx, const GLuint buffer, const GLuint point_id_buffer, size_t start, size_t count)
 reduces a provided opengl buffer
void reduce_buffer_finish (context &ctx)
 synchronizes and disables the shader prog.
void reduce_points (context &ctx, size_t start, size_t count)
 run point reduction step on the input data, you need to call enable first
void reduce_chunks (context &ctx, const uint32_t *chunk_starts, const uint32_t *chunk_point_counts, const uint32_t *reduction_sources, uint32_t num_reduction_sources)
 do a point reduction over preselected segments of the input buffer
void draw_points (context &ctx)
 render reduced points, you need to call reduce_points first to fill the render_buffer
unsigned int num_reduced_points ()
 gives the number of points written to the reduction buffer

Protected Member Functions

const render_style * get_style_ptr () const
template<typename T>
const T & get_style () const

Detailed Description

Definition at line 95 of file clod_point_renderer.h.

Constructor & Destructor Documentation

◆ clod_point_renderer()

cgv::render::clod_point_renderer::clod_point_renderer ( )

Definition at line 165 of file clod_point_renderer.cxx.

Member Function Documentation

◆ clear()

void cgv::render::clod_point_renderer::clear ( cgv::render::context & ctx)

Definition at line 297 of file clod_point_renderer.cxx.

◆ create_render_style()

render_style * cgv::render::clod_point_renderer::create_render_style ( ) const

Definition at line 170 of file clod_point_renderer.cxx.

◆ disable()

bool cgv::render::clod_point_renderer::disable ( context & ctx)

Definition at line 285 of file clod_point_renderer.cxx.

◆ disable_buffer_manager()

void cgv::render::clod_point_renderer::disable_buffer_manager ( )

Definition at line 304 of file clod_point_renderer.cxx.

◆ draw()

void cgv::render::clod_point_renderer::draw ( context & ctx,
size_t start = 0,
size_t count = 0 )

reduces and renders the input by calling reduce_points and draw_points

Definition at line 309 of file clod_point_renderer.cxx.

References draw_points(), and reduce_points().

◆ draw_points()

void cgv::render::clod_point_renderer::draw_points ( context & ctx)

render reduced points, you need to call reduce_points first to fill the render_buffer

Definition at line 138 of file clod_point_renderer.cxx.

Referenced by draw().

◆ enable() [1/2]

bool cgv::render::clod_point_renderer::enable ( context & ctx)

sets most uniforms

Definition at line 279 of file clod_point_renderer.cxx.

References enable(), and cgv::render::context::get_modelview_matrix().

Referenced by enable().

◆ enable() [2/2]

bool cgv::render::clod_point_renderer::enable ( context & ctx,
const mat4 & reduction_model_view_matrix )

Definition at line 209 of file clod_point_renderer.cxx.

◆ enable_buffer_manager()

bool cgv::render::clod_point_renderer::enable_buffer_manager ( clod_point_buffer_manager & manager)

Definition at line 362 of file clod_point_renderer.cxx.

◆ get_style()

template<typename T>
const T & cgv::render::clod_point_renderer::get_style ( ) const
inlineprotected

Definition at line 191 of file clod_point_renderer.h.

◆ get_style_ptr()

const render_style * cgv::render::clod_point_renderer::get_style_ptr ( ) const
protected

Definition at line 155 of file clod_point_renderer.cxx.

◆ init()

bool cgv::render::clod_point_renderer::init ( context & ctx)

Definition at line 175 of file clod_point_renderer.cxx.

◆ manage_singelton()

void cgv::render::clod_point_renderer::manage_singelton ( context & ctx,
const std::string & renderer_name,
int & ref_count,
int ref_count_change )

Definition at line 395 of file clod_point_renderer.cxx.

◆ num_reduced_points()

unsigned int cgv::render::clod_point_renderer::num_reduced_points ( )

gives the number of points written to the reduction buffer

Definition at line 441 of file clod_point_renderer.cxx.

◆ reduce_buffer()

void cgv::render::clod_point_renderer::reduce_buffer ( context & ctx,
const GLuint buffer,
const GLuint point_id_buffer,
size_t start,
size_t count )

reduces a provided opengl buffer

Definition at line 60 of file clod_point_renderer.cxx.

◆ reduce_buffer_finish()

void cgv::render::clod_point_renderer::reduce_buffer_finish ( context & ctx)

synchronizes and disables the shader prog.

Definition at line 78 of file clod_point_renderer.cxx.

◆ reduce_buffer_init()

void cgv::render::clod_point_renderer::reduce_buffer_init ( context & ctx,
bool reset_parameters = true )

initializes reduce,

enables the reduction compute shader and sets invariant uniforms

Parameters
reset_parameters: resets draw parameter buffer

Definition at line 46 of file clod_point_renderer.cxx.

◆ reduce_chunks()

void cgv::render::clod_point_renderer::reduce_chunks ( context & ctx,
const uint32_t * chunk_starts,
const uint32_t * chunk_point_counts,
const uint32_t * reduction_sources,
uint32_t num_reduction_sources )

do a point reduction over preselected segments of the input buffer

Parameters
chunk_startsindex of the first point in a chunk
chunk_point_countsnumber of points in each chunk
reduction_sourcesids of chunks considered for reduction

Definition at line 113 of file clod_point_renderer.cxx.

◆ reduce_points()

void cgv::render::clod_point_renderer::reduce_points ( context & ctx,
size_t start,
size_t count )

run point reduction step on the input data, you need to call enable first

Definition at line 84 of file clod_point_renderer.cxx.

Referenced by draw().

◆ render()

bool cgv::render::clod_point_renderer::render ( context & ctx,
size_t start,
size_t count )

Definition at line 315 of file clod_point_renderer.cxx.

◆ set_frustum_extend()

void cgv::render::clod_point_renderer::set_frustum_extend ( const float & fe)

Definition at line 380 of file clod_point_renderer.cxx.

◆ set_max_drawn_points()

void cgv::render::clod_point_renderer::set_max_drawn_points ( cgv::render::context & ctx,
const unsigned max_points )

Definition at line 373 of file clod_point_renderer.cxx.

◆ set_pivot_point()

void cgv::render::clod_point_renderer::set_pivot_point ( const vec4 & pivot)

Definition at line 385 of file clod_point_renderer.cxx.

◆ set_points() [1/2]

void cgv::render::clod_point_renderer::set_points ( cgv::render::context & ctx,
const Point * pnts,
const size_t num_points )

this method can be used if the data format of pnts matches with the internal format given by the Point struct

Definition at line 324 of file clod_point_renderer.cxx.

Referenced by set_points().

◆ set_points() [2/2]

void cgv::render::clod_point_renderer::set_points ( cgv::render::context & ctx,
const vec3 * positions,
const rgb8 * colors,
const uint8_t * lods,
const size_t num_points,
const unsigned stride = 0 )

to use the clod point renderer lods are required, to generate them use the classes inside libs/pointcloud/octree.h

Parameters
positions: pointer to first points position
color: pointer to first points color
lods: pointer to firsts points level of detail
num_points: number of points to draw
stride: stride in bytes, zero if positions, color and lods are not stored interleaved

Definition at line 334 of file clod_point_renderer.cxx.

References set_points().

◆ set_prog()

void cgv::render::clod_point_renderer::set_prog ( shader_program & one_shot_prog)

set a custom shader program that is used for one enable disable cycle

Definition at line 420 of file clod_point_renderer.cxx.

◆ set_render_style()

void cgv::render::clod_point_renderer::set_render_style ( const render_style & rs)

Definition at line 390 of file clod_point_renderer.cxx.


The documentation for this class was generated from the following files: