Skip to content

Class OctreeLASLayerRenderer

ClassList > OctreeLASLayerRenderer

Inherits the following classes: LayerRenderer

Classes

Type Name
struct NodeStreamState

Public Attributes

Type Name
int m_ambient_light_loc = -1
int m_color_mode_loc = 0
std::vector< GLsizei > m_counts
int m_diffuse_light_loc = -1
std::vector< OctreePoint > m_draw_batch
std::vector< GLint > m_firsts
int m_fixed_color_loc = 0
int m_fov_rad_loc = 0
GLuint m_gpu_timer_query = 0
double m_inc_lod_quality = 1.0
double m_last_point_draw_ms = 0.0
double m_last_point_gpu_ms = 0.0
size_t m_last_point_vertices_drawn = 0
std::weak_ptr< LASLayer > m_layer
int m_layer_slot = 0
int m_light_direction_eye_loc = -1
double m_lod_quality = 1.0
double m_lod_query_cpu_ms = 0.0
size_t m_lod_query_vertices = 0
double m_ms_per_vertex = 30.0 / 800'000.0
std::unordered_map< const PointOctreeNode *, NodeStreamState > m_node_stream
int m_point_alpha_loc = 0
PointCloudGL m_point_gl
int m_point_offset_loc = 0
int m_point_radius_loc = 0
bool m_points_uploaded = false
bool m_prev_incremental_stream = false
int m_proj_matrix_loc = 0
std::unique_ptr< QOpenGLShaderProgram > m_shader
int m_shader_layer_slot_loc = -1
bool m_stream_backlog = false
QVector3D m_stream_camera_dir
QVector3D m_stream_camera_pos
int m_view_matrix_loc = 0
int m_viewport_height_loc = 0
size_t m_visible_fingerprint = 0

Public Signals inherited from LayerRenderer

See LayerRenderer

Type Name
signal void repaint_required
signal void stream_view_reset

Public Functions

Type Name
OctreeLASLayerRenderer (std::shared_ptr< LASLayer > layer, const Coordinate3D< double > & offset)
bool can_fbo_pick () const
void collect_visible_octree_nodes (const LasRenderSnapshot & snap, const Camera & camera, double vis_quality, const Coordinate3D< double > & file_origin, std::vector< PointOctree::VisibleNode > & visible_nodes) const
void consume_gpu_timer_sample (class QOpenGLExtraFunctions * gl)
size_t draw_octree_nodes (QOpenGLFunctions * f, const OctreePointVector & point_storage, const std::vector< PointOctree::VisibleNode > & visible_nodes, const Coordinate3D< double > & file_origin, const Coordinate3D< double > & scene_offset, double quality, bool incremental)
size_t draw_preview_points (QOpenGLFunctions * f, const OctreePointVector & preview, const Coordinate3D< double > & file_origin, const Coordinate3D< double > & scene_offset)
void ensure_gpu_timer (class QOpenGLExtraFunctions * gl)
void ensure_shader ()
size_t estimate_draw_vertices (const std::vector< PointOctree::VisibleNode > & visible_nodes, double quality, bool incremental) const
bool has_stream_backlog () const
double last_point_draw_ms () const
double last_point_gpu_ms () const
size_t last_point_vertices_drawn () const
int layer_slot () const
std::optional< PointPickResult > point_from_index (uint32_t layer_slot, uint32_t pick_index, const Coordinate3D< double > & scene_offset) const
void record_lod_sample (size_t vertices, double ms)
void refresh_after_style_change ()
virtual void render (const Camera & camera, const RenderContext & ctx) override
void reset_stream_cache ()
double select_draw_quality (const std::vector< PointOctree::VisibleNode > & visible_nodes, bool incremental, bool lod_base_from_incremental, double target_draw_ms) const
void set_layer_slot (int slot)
bool stream_camera_changed (const Camera & camera) const
size_t visible_nodes_fingerprint (const std::vector< PointOctree::VisibleNode > & visible_nodes) const
bool visible_set_changed (const std::vector< PointOctree::VisibleNode > & visible_nodes) const
~OctreeLASLayerRenderer () override

Public Functions inherited from LayerRenderer

See LayerRenderer

Type Name
void data_update_required ()
virtual void render (const Camera & camera, const RenderContext & ctx) = 0
void set_visible (bool visible)
virtual ~LayerRenderer () = default

Public Static Functions

Type Name
void sort_visible_by_lod (std::vector< PointOctree::VisibleNode > & visible_nodes)

Public Static Functions inherited from LayerRenderer

See LayerRenderer

Type Name
std::unique_ptr< LayerRenderer > create (std::shared_ptr< Layer > layer, const Coordinate3D< double > & offset)

Protected Attributes inherited from LayerRenderer

See LayerRenderer

Type Name
bool m_data_update_required = true
bool m_visible = true

Public Attributes Documentation

variable m_ambient_light_loc

int OctreeLASLayerRenderer::m_ambient_light_loc;

variable m_color_mode_loc

int OctreeLASLayerRenderer::m_color_mode_loc;

variable m_counts

std::vector<GLsizei> OctreeLASLayerRenderer::m_counts;

variable m_diffuse_light_loc

int OctreeLASLayerRenderer::m_diffuse_light_loc;

variable m_draw_batch

std::vector<OctreePoint> OctreeLASLayerRenderer::m_draw_batch;

variable m_firsts

std::vector<GLint> OctreeLASLayerRenderer::m_firsts;

variable m_fixed_color_loc

int OctreeLASLayerRenderer::m_fixed_color_loc;

variable m_fov_rad_loc

int OctreeLASLayerRenderer::m_fov_rad_loc;

variable m_gpu_timer_query

GLuint OctreeLASLayerRenderer::m_gpu_timer_query;

variable m_inc_lod_quality

double OctreeLASLayerRenderer::m_inc_lod_quality;

variable m_last_point_draw_ms

double OctreeLASLayerRenderer::m_last_point_draw_ms;

variable m_last_point_gpu_ms

double OctreeLASLayerRenderer::m_last_point_gpu_ms;

variable m_last_point_vertices_drawn

size_t OctreeLASLayerRenderer::m_last_point_vertices_drawn;

variable m_layer

std::weak_ptr<LASLayer> OctreeLASLayerRenderer::m_layer;

variable m_layer_slot

int OctreeLASLayerRenderer::m_layer_slot;

variable m_light_direction_eye_loc

int OctreeLASLayerRenderer::m_light_direction_eye_loc;

variable m_lod_quality

double OctreeLASLayerRenderer::m_lod_quality;

variable m_lod_query_cpu_ms

double OctreeLASLayerRenderer::m_lod_query_cpu_ms;

variable m_lod_query_vertices

size_t OctreeLASLayerRenderer::m_lod_query_vertices;

variable m_ms_per_vertex

double OctreeLASLayerRenderer::m_ms_per_vertex;

variable m_node_stream

std::unordered_map<const PointOctreeNode*, NodeStreamState> OctreeLASLayerRenderer::m_node_stream;

variable m_point_alpha_loc

int OctreeLASLayerRenderer::m_point_alpha_loc;

variable m_point_gl

PointCloudGL OctreeLASLayerRenderer::m_point_gl;

variable m_point_offset_loc

int OctreeLASLayerRenderer::m_point_offset_loc;

variable m_point_radius_loc

int OctreeLASLayerRenderer::m_point_radius_loc;

variable m_points_uploaded

bool OctreeLASLayerRenderer::m_points_uploaded;

variable m_prev_incremental_stream

bool OctreeLASLayerRenderer::m_prev_incremental_stream;

variable m_proj_matrix_loc

int OctreeLASLayerRenderer::m_proj_matrix_loc;

variable m_shader

std::unique_ptr<QOpenGLShaderProgram> OctreeLASLayerRenderer::m_shader;

variable m_shader_layer_slot_loc

int OctreeLASLayerRenderer::m_shader_layer_slot_loc;

variable m_stream_backlog

bool OctreeLASLayerRenderer::m_stream_backlog;

variable m_stream_camera_dir

QVector3D OctreeLASLayerRenderer::m_stream_camera_dir;

variable m_stream_camera_pos

QVector3D OctreeLASLayerRenderer::m_stream_camera_pos;

variable m_view_matrix_loc

int OctreeLASLayerRenderer::m_view_matrix_loc;

variable m_viewport_height_loc

int OctreeLASLayerRenderer::m_viewport_height_loc;

variable m_visible_fingerprint

size_t OctreeLASLayerRenderer::m_visible_fingerprint;

Public Functions Documentation

function OctreeLASLayerRenderer

OctreeLASLayerRenderer::OctreeLASLayerRenderer (
    std::shared_ptr< LASLayer > layer,
    const Coordinate3D < double > & offset
) 

function can_fbo_pick

bool OctreeLASLayerRenderer::can_fbo_pick () const

function collect_visible_octree_nodes

void OctreeLASLayerRenderer::collect_visible_octree_nodes (
    const LasRenderSnapshot & snap,
    const Camera & camera,
    double vis_quality,
    const Coordinate3D < double > & file_origin,
    std::vector< PointOctree::VisibleNode > & visible_nodes
) const

function consume_gpu_timer_sample

void OctreeLASLayerRenderer::consume_gpu_timer_sample (
    class QOpenGLExtraFunctions * gl
) 

function draw_octree_nodes

size_t OctreeLASLayerRenderer::draw_octree_nodes (
    QOpenGLFunctions * f,
    const OctreePointVector & point_storage,
    const std::vector< PointOctree::VisibleNode > & visible_nodes,
    const Coordinate3D < double > & file_origin,
    const Coordinate3D < double > & scene_offset,
    double quality,
    bool incremental
) 

function draw_preview_points

size_t OctreeLASLayerRenderer::draw_preview_points (
    QOpenGLFunctions * f,
    const OctreePointVector & preview,
    const Coordinate3D < double > & file_origin,
    const Coordinate3D < double > & scene_offset
) 

function ensure_gpu_timer

void OctreeLASLayerRenderer::ensure_gpu_timer (
    class QOpenGLExtraFunctions * gl
) 

function ensure_shader

void OctreeLASLayerRenderer::ensure_shader () 

function estimate_draw_vertices

size_t OctreeLASLayerRenderer::estimate_draw_vertices (
    const std::vector< PointOctree::VisibleNode > & visible_nodes,
    double quality,
    bool incremental
) const

function has_stream_backlog

inline bool OctreeLASLayerRenderer::has_stream_backlog () const

function last_point_draw_ms

inline double OctreeLASLayerRenderer::last_point_draw_ms () const

function last_point_gpu_ms

inline double OctreeLASLayerRenderer::last_point_gpu_ms () const

function last_point_vertices_drawn

inline size_t OctreeLASLayerRenderer::last_point_vertices_drawn () const

function layer_slot

inline int OctreeLASLayerRenderer::layer_slot () const

function point_from_index

std::optional< PointPickResult > OctreeLASLayerRenderer::point_from_index (
    uint32_t layer_slot,
    uint32_t pick_index,
    const Coordinate3D < double > & scene_offset
) const

function record_lod_sample

void OctreeLASLayerRenderer::record_lod_sample (
    size_t vertices,
    double ms
) 

function refresh_after_style_change

void OctreeLASLayerRenderer::refresh_after_style_change () 

function render

virtual void OctreeLASLayerRenderer::render (
    const Camera & camera,
    const RenderContext & ctx
) override

Implements LayerRenderer::render


function reset_stream_cache

void OctreeLASLayerRenderer::reset_stream_cache () 

function select_draw_quality

double OctreeLASLayerRenderer::select_draw_quality (
    const std::vector< PointOctree::VisibleNode > & visible_nodes,
    bool incremental,
    bool lod_base_from_incremental,
    double target_draw_ms
) const

function set_layer_slot

inline void OctreeLASLayerRenderer::set_layer_slot (
    int slot
) 

function stream_camera_changed

bool OctreeLASLayerRenderer::stream_camera_changed (
    const Camera & camera
) const

function visible_nodes_fingerprint

size_t OctreeLASLayerRenderer::visible_nodes_fingerprint (
    const std::vector< PointOctree::VisibleNode > & visible_nodes
) const

function visible_set_changed

bool OctreeLASLayerRenderer::visible_set_changed (
    const std::vector< PointOctree::VisibleNode > & visible_nodes
) const

function ~OctreeLASLayerRenderer

OctreeLASLayerRenderer::~OctreeLASLayerRenderer () override

Public Static Functions Documentation

function sort_visible_by_lod

static void OctreeLASLayerRenderer::sort_visible_by_lod (
    std::vector< PointOctree::VisibleNode > & visible_nodes
) 


The documentation for this class was generated from the following file /home/runner/work/Blaze/Blaze/src/gui/layer_renderer.hpp