#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/slic3r/GUI/GLModel.hpp>
Classes | |
| struct | Geometry |
| struct | RenderData |
Public Member Functions | |
| GLModel ()=default | |
| virtual | ~GLModel () |
| size_t | vertices_count () const |
| size_t | indices_count () const |
| size_t | vertices_size_floats () const |
| size_t | vertices_size_bytes () const |
| size_t | indices_size_bytes () const |
| const Geometry & | get_geometry () const |
| void | init_from (Geometry &&data) |
| void | init_from (const TriangleMesh &mesh) |
| void | init_from (const indexed_triangle_set &its) |
| void | init_from (const Polygons &polygons, float z) |
| bool | init_from_file (const std::string &filename) |
| void | set_color (const ColorRGBA &color) |
| const ColorRGBA & | get_color () const |
| void | reset () |
| void | render (GLShaderProgram *shader=nullptr) |
| void | render (const std::pair< size_t, size_t > &range, GLShaderProgram *shader=nullptr) |
| void | render_instanced (unsigned int instances_vbo, unsigned int instances_count) |
| bool | is_initialized () const |
| bool | is_empty () const |
| const BoundingBoxf3 & | get_bounding_box () const |
| const std::string & | get_filename () const |
| bool | is_render_disabled () const |
| void | enable_render () |
| void | disable_render () |
| size_t | cpu_memory_used () const |
| size_t | gpu_memory_used () const |
Private Member Functions | |
| bool | send_to_gpu () |
Private Attributes | |
| RenderData | m_render_data |
| bool | m_render_disabled { false } |
| BoundingBoxf3 | m_bounding_box |
| std::string | m_filename |
| struct Slic3r::GUI::GLModel::RenderData |
| Class Members | ||
|---|---|---|
| Geometry | geometry | |
| unsigned int | ibo_id { 0 } | |
| size_t | indices_count { 0 } | |
| unsigned int | vao_id { 0 } | |
| unsigned int | vbo_id { 0 } | |
| size_t | vertices_count { 0 } | |
|
default |
|
inlinevirtual |
|
inline |
References indices_size_bytes(), m_render_data, and vertices_size_bytes().
Referenced by Slic3r::GLVolume::cpu_memory_used().
|
inline |
References m_render_disabled.
|
inline |
References m_render_disabled.
|
inline |
References m_bounding_box.
Referenced by Slic3r::GUI::GLCanvas3D::_shadow_casters_signature(), Slic3r::GLVolume::bounding_box(), and Slic3r::GUI::contains().
|
inline |
References m_render_data.
|
inline |
References m_filename.
|
inline |
References m_render_data.
Referenced by Slic3r::GUI::contains(), and Slic3r::GUI::init_raycaster_from_model().
|
inline |
References indices_size_bytes(), m_render_data, and vertices_size_bytes().
Referenced by Slic3r::GLVolume::gpu_memory_used().
|
inline |
References m_render_data.
Referenced by Slic3r::GUI::GLCanvas3D::_shadow_casters_signature(), Slic3r::GUI::GLModel::Geometry::extract_index(), Slic3r::GUI::GLModel::Geometry::get_as_indexed_triangle_set(), indices_size_bytes(), is_initialized(), render(), render_instanced(), send_to_gpu(), and Slic3r::GUI::GLModel::Geometry::set_index().
|
inline |
References Slic3r::GUI::GLModel::Geometry::index_stride_bytes(), indices_count(), and m_render_data.
Referenced by cpu_memory_used(), and gpu_memory_used().
| void Slic3r::GUI::GLModel::init_from | ( | const indexed_triangle_set & | its | ) |
References Slic3r::GUI::GLModel::Geometry::add_triangle(), Slic3r::GUI::GLModel::Geometry::add_vertex(), Slic3r::GUI::GLModel::Geometry::extract_position_3(), Slic3r::face_normal_normalized(), Slic3r::GUI::GLModel::Geometry::format, is_initialized(), Slic3r::its_smooth_corner_normals(), m_bounding_box, m_render_data, Slic3r::GUI::GLModel::Geometry::P3N3, Slic3r::GUI::GLModel::Geometry::reserve_indices(), Slic3r::GUI::GLModel::Geometry::reserve_vertices(), SETTING_OPENGL_PHONG_SMOOTH_NORMALS, Slic3r::GUI::GLModel::Geometry::Triangles, and vertices_count().
| void Slic3r::GUI::GLModel::init_from | ( | const Polygons & | polygons, |
| float | z ) |
References Slic3r::GUI::GLModel::Geometry::add_line(), Slic3r::GUI::GLModel::Geometry::add_vertex(), Slic3r::GUI::GLModel::Geometry::extract_position_3(), Slic3r::GUI::GLModel::Geometry::format, is_initialized(), Slic3r::GUI::GLModel::Geometry::Lines, m_bounding_box, m_render_data, Slic3r::GUI::GLModel::Geometry::P3, Slic3r::GUI::GLModel::Geometry::reserve_indices(), Slic3r::GUI::GLModel::Geometry::reserve_vertices(), Slic3r::unscale(), and vertices_count().
| void Slic3r::GUI::GLModel::init_from | ( | const TriangleMesh & | mesh | ) |
References init_from(), and Slic3r::TriangleMesh::its.
| void Slic3r::GUI::GLModel::init_from | ( | Geometry && | data | ) |
References is_initialized(), m_bounding_box, m_render_data, Slic3r::GUI::GLModel::Geometry::position_stride_floats(), and vertices_count().
Referenced by Slic3r::GUI::GLCanvas3D::_load_sla_shells(), Slic3r::GUI::GLCanvas3D::_render_sla_slices(), Slic3r::GUI::DesignSketchTool::draw_fill(), Slic3r::GUI::DesignSketchTool::draw_fill_holed(), Slic3r::GUI::DesignSketchTool::draw_quad_strip(), Slic3r::GUI::DesignSketchTool::draw_strokes(), Slic3r::GUI::DesignSketchTool::draw_vertices(), Slic3r::GUI::GLGizmoMeasure::init_circle_glmodel(), Slic3r::GUI::init_exclusion_volume_prism_model(), init_from(), Slic3r::GUI::init_from_angle_arc(), Slic3r::GUI::init_from_circle(), init_from_file(), Slic3r::GUI::init_from_scale(), Slic3r::GUI::init_from_snap_radii(), Slic3r::GUI::init_model_from_expolygons(), Slic3r::GUI::init_model_from_lines(), Slic3r::GUI::init_model_from_lines(), Slic3r::GUI::init_model_from_poly(), Slic3r::GUI::init_model_from_polygons(), Slic3r::GUI::GLGizmoMeasure::init_plane_glmodel(), Slic3r::GLVolumeCollection::load_object_auxiliary(), Slic3r::GLVolumeCollection::load_object_volume(), Slic3r::GLVolumeCollection::load_real_wipe_tower_preview(), Slic3r::GLVolumeCollection::load_wipe_tower_preview(), Slic3r::GUI::MeshClipper::recalculate_triangles(), Slic3r::GUI::GLCanvas3D::reload_scene(), Slic3r::GUI::DesignSketchTool::render_base_pick(), Slic3r::GUI::GLGizmoBase::render_cross_mark(), Slic3r::GUI::DesignSketchTool::render_datum_gizmo(), Slic3r::GUI::DesignSketchTool::render_datum_planes(), Slic3r::GUI::DesignSketchTool::render_helix_gizmo(), Slic3r::GUI::DesignSketchTool::render_hole_gizmo(), Slic3r::GUI::DesignSketchTool::render_reference_axes(), Slic3r::GUI::DesignSketchTool::render_rib_gizmo(), Slic3r::GUI::render_ribbons(), Slic3r::GUI::GLTexture::render_sub_texture(), and Slic3r::GUI::DesignSketchTool::render_view_helpers().
| bool Slic3r::GUI::GLModel::init_from_file | ( | const std::string & | filename | ) |
References init_from(), m_filename, Slic3r::Model::mesh(), and Slic3r::Model::read_from_file().
|
inline |
References m_render_data.
Referenced by Slic3r::GLVolume::empty().
|
inline |
References indices_count(), and vertices_count().
Referenced by Slic3r::GUI::GLCanvas3D::_render_sla_slices(), Slic3r::GUI::GLGizmoMeasure::init_circle_glmodel(), init_from(), init_from(), init_from(), Slic3r::GUI::GLGizmoMeasure::init_plane_glmodel(), Slic3r::GUI::UVEditorCanvas::render(), Slic3r::GUI::PartPlate::render_logo_texture(), Slic3r::GUI::GLGizmoTextureDisplacement::render_paint_overlay(), and Slic3r::GLVolume::simple_render().
|
inline |
References m_render_disabled.
| void Slic3r::GUI::GLModel::render | ( | const std::pair< size_t, size_t > & | range, |
| GLShaderProgram * | shader = nullptr ) |
References Slic3r::GUI::GLModel::Geometry::color, Slic3r::GUI::GLModel::Geometry::format, Slic3r::GLShaderProgram::get_attrib_location(), Slic3r::GUI::OpenGLManager::get_gl_info(), Slic3r::GUI::get_index_type(), Slic3r::GUI::get_primitive_mode(), GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_FALSE, GL_FLOAT, glBindBuffer, glBindVertexArray, glDisableVertexAttribArray, glDrawElements, glEnableVertexAttribArray, glsafe, glVertexAttribPointer, Slic3r::GUI::GLModel::Geometry::has_normal(), Slic3r::GUI::GLModel::Geometry::has_position(), Slic3r::GUI::GLModel::Geometry::has_tex_coord(), Slic3r::GUI::GLModel::Geometry::index_stride_bytes(), m_render_data, m_render_disabled, Slic3r::normal(), Slic3r::GUI::GLModel::Geometry::normal_offset_bytes(), Slic3r::GUI::GLModel::Geometry::normal_stride_floats(), Slic3r::GUI::GLModel::Geometry::position_offset_bytes(), Slic3r::GUI::GLModel::Geometry::position_stride_floats(), Slic3r::range(), send_to_gpu(), Slic3r::GLShaderProgram::set_uniform(), Slic3r::GUI::GLModel::Geometry::tex_coord_offset_bytes(), Slic3r::GUI::GLModel::Geometry::tex_coord_stride_floats(), and Slic3r::GUI::GLModel::Geometry::vertex_stride_bytes().
| void Slic3r::GUI::GLModel::render | ( | GLShaderProgram * | shader = nullptr | ) |
References indices_count(), and render().
Referenced by Slic3r::GUI::GLCanvas3D::_render_shadows(), Slic3r::GUI::GLCanvas3D::_render_sla_slices(), Slic3r::GUI::DesignSketchTool::draw_fill(), Slic3r::GUI::DesignSketchTool::draw_fill_holed(), Slic3r::GUI::DesignSketchTool::draw_quad_strip(), Slic3r::GUI::DesignSketchTool::draw_strokes(), Slic3r::GUI::DesignSketchTool::draw_vertices(), render(), Slic3r::GUI::SceneCache::render(), Slic3r::GUI::UVEditorCanvas::render(), Slic3r::GUI::DesignSketchTool::render_base_pick(), Slic3r::GUI::MeshClipper::render_contour(), Slic3r::GUI::GLGizmoBase::render_cross_mark(), Slic3r::GUI::MeshClipper::render_cut(), Slic3r::GUI::DesignSketchTool::render_datum_gizmo(), Slic3r::GUI::DesignSketchTool::render_datum_planes(), Slic3r::GUI::DesignSketchTool::render_helix_gizmo(), Slic3r::GUI::DesignSketchTool::render_hole_gizmo(), Slic3r::GUI::PartPlate::render_icon_texture(), Slic3r::GUI::GLGizmoCut3D::render_line(), Slic3r::GUI::PartPlate::render_logo_texture(), Slic3r::GUI::GLGizmoCut3D::render_model(), Slic3r::GUI::GLGizmoTextureDisplacement::render_paint_overlay(), Slic3r::GUI::DesignSketchTool::render_reference_axes(), Slic3r::GUI::DesignSketchTool::render_rib_gizmo(), Slic3r::GUI::render_ribbons(), Slic3r::GUI::GLTexture::render_sub_texture(), Slic3r::GUI::DesignSketchTool::render_view_helpers(), and Slic3r::GLVolume::simple_render().
| void Slic3r::GUI::GLModel::render_instanced | ( | unsigned int | instances_vbo, |
| unsigned int | instances_count ) |
References Slic3r::GUI::GLModel::Geometry::color, Slic3r::GUI::GLModel::Geometry::format, Slic3r::GLShaderProgram::get_attrib_location(), Slic3r::GUI::OpenGLManager::get_gl_info(), Slic3r::GUI::get_index_type(), Slic3r::GLShaderProgram::get_name(), Slic3r::GUI::get_primitive_mode(), GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_FALSE, GL_FLOAT, glBindBuffer, glBindVertexArray, glDisableVertexAttribArray, glDrawElementsInstanced, glEnableVertexAttribArray, glsafe, glVertexAttribDivisor, glVertexAttribPointer, Slic3r::GUI::GLModel::Geometry::has_normal(), Slic3r::GUI::GLModel::Geometry::has_position(), indices_count(), m_render_data, Slic3r::normal(), Slic3r::GUI::GLModel::Geometry::normal_offset_bytes(), Slic3r::GUI::GLModel::Geometry::normal_stride_floats(), Slic3r::GUI::GLModel::Geometry::position_offset_bytes(), Slic3r::GUI::GLModel::Geometry::position_stride_floats(), send_to_gpu(), Slic3r::GLShaderProgram::set_uniform(), and Slic3r::GUI::GLModel::Geometry::vertex_stride_bytes().
| void Slic3r::GUI::GLModel::reset | ( | ) |
References Slic3r::GUI::OpenGLManager::get_gl_info(), glDeleteBuffers, glDeleteVertexArrays, glsafe, m_bounding_box, m_filename, and m_render_data.
Referenced by ~GLModel(), Slic3r::GUI::PartPlate::calc_triangles_from_polygon(), Slic3r::GUI::PartPlate::calc_vertex_for_imex_warn_badge(), Slic3r::GUI::PartPlate::calc_vertex_for_number(), Slic3r::GUI::DesignSketchTool::draw_fill(), Slic3r::GUI::DesignSketchTool::draw_fill_holed(), Slic3r::GUI::DesignSketchTool::draw_quad_strip(), Slic3r::GUI::DesignSketchTool::draw_strokes(), Slic3r::GUI::DesignSketchTool::draw_vertices(), Slic3r::GUI::init_exclusion_volume_prism_model(), Slic3r::GUI::init_from_angle_arc(), Slic3r::GUI::init_model_from_expolygons(), Slic3r::GUI::init_model_from_polygons(), Slic3r::GUI::GLCanvas3D::reload_scene(), and Slic3r::GUI::render_ribbons().
|
private |
References Slic3r::GUI::OpenGLManager::get_gl_info(), GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_STATIC_DRAW, glBindBuffer, glBindVertexArray, glBufferData, glGenBuffers, glGenVertexArrays, glsafe, Slic3r::GUI::GLModel::Geometry::index_type, Slic3r::GUI::GLModel::Geometry::indices, indices_count(), Slic3r::GUI::GLModel::Geometry::indices_size_bytes(), m_render_data, Slic3r::GUI::GLModel::Geometry::UBYTE, Slic3r::GUI::GLModel::Geometry::UINT, Slic3r::GUI::GLModel::Geometry::USHORT, Slic3r::GUI::GLModel::Geometry::vertices, vertices_count(), and Slic3r::GUI::GLModel::Geometry::vertices_size_bytes().
Referenced by render(), and render_instanced().
|
inline |
References m_render_data.
Referenced by Slic3r::GUI::GLCanvas3D::_render_below_plate_volumes(), Slic3r::GUI::DesignSketchTool::draw_fill(), Slic3r::GUI::DesignSketchTool::draw_fill_holed(), Slic3r::GUI::DesignSketchTool::draw_quad_strip(), Slic3r::GUI::DesignSketchTool::draw_strokes(), Slic3r::GUI::DesignSketchTool::draw_vertices(), Slic3r::GUI::init_from_circle(), Slic3r::GUI::init_from_scale(), Slic3r::GUI::init_from_snap_radii(), Slic3r::GLVolumeCollection::load_object_auxiliary(), Slic3r::GUI::UVEditorCanvas::render(), Slic3r::GUI::DesignSketchTool::render_base_pick(), Slic3r::GUI::MeshClipper::render_contour(), Slic3r::GUI::MeshClipper::render_cut(), Slic3r::GUI::DesignSketchTool::render_datum_gizmo(), Slic3r::GUI::DesignSketchTool::render_datum_planes(), Slic3r::GUI::DesignSketchTool::render_helix_gizmo(), Slic3r::GUI::DesignSketchTool::render_hole_gizmo(), Slic3r::GUI::GLGizmoCut3D::render_line(), Slic3r::GUI::GLGizmoCut3D::render_model(), Slic3r::GUI::DesignSketchTool::render_reference_axes(), Slic3r::GUI::DesignSketchTool::render_rib_gizmo(), Slic3r::GUI::render_ribbons(), Slic3r::GUI::DesignSketchTool::render_view_helpers(), and Slic3r::GLVolume::simple_render().
|
inline |
References m_render_data.
Referenced by Slic3r::GUI::GLCanvas3D::_shadow_casters_signature(), Slic3r::GUI::GLModel::Geometry::extract_normal_3(), Slic3r::GUI::GLModel::Geometry::extract_position_2(), Slic3r::GUI::GLModel::Geometry::extract_position_3(), Slic3r::GUI::GLModel::Geometry::extract_tex_coord_2(), Slic3r::GUI::GLModel::Geometry::get_as_indexed_triangle_set(), init_from(), init_from(), init_from(), is_initialized(), Slic3r::GUI::GLModel::Geometry::remove_vertex(), send_to_gpu(), Slic3r::GUI::GLModel::Geometry::set_vertex(), and vertices_size_floats().
|
inline |
References vertices_size_floats().
Referenced by cpu_memory_used(), and gpu_memory_used().
|
inline |
References m_render_data, Slic3r::GUI::GLModel::Geometry::vertex_stride_floats(), and vertices_count().
Referenced by vertices_size_bytes().
|
private |
Referenced by get_bounding_box(), init_from(), init_from(), init_from(), and reset().
|
private |
Referenced by get_filename(), init_from_file(), and reset().
|
private |
|
private |
Referenced by disable_render(), enable_render(), is_render_disabled(), and render().