OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::GUI::GLModel::Geometry Struct Reference

#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/slic3r/GUI/GLModel.hpp>

Collaboration diagram for Slic3r::GUI::GLModel::Geometry:

Classes

struct  Format

Public Types

enum class  EPrimitiveType : unsigned char {
  Points , Triangles , TriangleStrip , TriangleFan ,
  Lines , LineStrip , LineLoop
}
enum class  EVertexLayout : unsigned char {
  P2 , P2T2 , P3 , P3T2 ,
  P3N3 , P3N3T2 , P4
}
enum class  EIndexType : unsigned char { UINT , USHORT , UBYTE }

Public Member Functions

void reserve_vertices (size_t vertices_count)
void reserve_indices (size_t indices_count)
void add_vertex (const Vec2f &position)
void add_vertex (const Vec2f &position, const Vec2f &tex_coord)
void add_vertex (const Vec3f &position)
void add_vertex (const Vec3f &position, const Vec2f &tex_coord)
void add_vertex (const Vec3f &position, const Vec3f &normal)
void add_vertex (const Vec3f &position, const Vec3f &normal, const Vec2f &tex_coord)
void add_vertex (const Vec4f &position)
void set_vertex (size_t id, const Vec3f &position, const Vec3f &normal)
void set_index (size_t id, unsigned int index)
void add_index (unsigned int id)
void add_line (unsigned int id1, unsigned int id2)
void add_triangle (unsigned int id1, unsigned int id2, unsigned int id3)
Vec2f extract_position_2 (size_t id) const
Vec3f extract_position_3 (size_t id) const
Vec3f extract_normal_3 (size_t id) const
Vec2f extract_tex_coord_2 (size_t id) const
unsigned int extract_index (size_t id) const
void remove_vertex (size_t id)
bool is_empty () const
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
indexed_triangle_set get_as_indexed_triangle_set () const

Static Public Member Functions

static size_t vertex_stride_floats (const Format &format)
static size_t vertex_stride_bytes (const Format &format)
static size_t position_stride_floats (const Format &format)
static size_t position_stride_bytes (const Format &format)
static size_t position_offset_floats (const Format &format)
static size_t position_offset_bytes (const Format &format)
static size_t normal_stride_floats (const Format &format)
static size_t normal_stride_bytes (const Format &format)
static size_t normal_offset_floats (const Format &format)
static size_t normal_offset_bytes (const Format &format)
static size_t tex_coord_stride_floats (const Format &format)
static size_t tex_coord_stride_bytes (const Format &format)
static size_t tex_coord_offset_floats (const Format &format)
static size_t tex_coord_offset_bytes (const Format &format)
static size_t index_stride_bytes (const Geometry &data)
static bool has_position (const Format &format)
static bool has_normal (const Format &format)
static bool has_tex_coord (const Format &format)

Public Attributes

Format format
std::vector< float > vertices
std::vector< unsigned int > indices
EIndexType index_type { EIndexType::UINT }
ColorRGBA color { ColorRGBA::BLACK() }

Detailed Description


Class Documentation

◆ Slic3r::GUI::GLModel::Geometry::Format

struct Slic3r::GUI::GLModel::Geometry::Format

Member Enumeration Documentation

◆ EIndexType

enum class Slic3r::GUI::GLModel::Geometry::EIndexType : unsigned char
strong
Enumerator
UINT 
USHORT 
UBYTE 
52 {
53 UINT, // unsigned int
54 USHORT, // unsigned short
55 UBYTE // unsigned byte
56 };

◆ EPrimitiveType

enum class Slic3r::GUI::GLModel::Geometry::EPrimitiveType : unsigned char
strong
Enumerator
Points 
Triangles 
TriangleStrip 
TriangleFan 
Lines 
LineStrip 
LineLoop 
30 {
31 Points,
32 Triangles,
33 TriangleStrip,
34 TriangleFan,
35 Lines,
36 LineStrip,
37 LineLoop
38 };
std::vector< Line > Lines
Definition Line.hpp:20
std::vector< Point, PointsAllocator< Point > > Points
Definition Point.hpp:73

◆ EVertexLayout

enum class Slic3r::GUI::GLModel::Geometry::EVertexLayout : unsigned char
strong
Enumerator
P2 
P2T2 
P3 
P3T2 
P3N3 
P3N3T2 
P4 
41 {
42 P2, // position 2 floats
43 P2T2, // position 2 floats + texture coords 2 floats
44 P3, // position 3 floats
45 P3T2, // position 3 floats + texture coords 2 floats
46 P3N3, // position 3 floats + normal 3 floats
47 P3N3T2, // position 3 floats + normal 3 floats + texture coords 2 floats
48 P4, // position 4 floats
49 };
Eigen::Matrix< Coord2, 2, 1, Eigen::DontAlign > P2
Definition Emboss.cpp:1866
CGAL::Epick::Point_3 P3
Definition CutSurface.cpp:113

Member Function Documentation

◆ add_index()

void Slic3r::GUI::GLModel::Geometry::add_index ( unsigned int id)

◆ add_line()

void Slic3r::GUI::GLModel::Geometry::add_line ( unsigned int id1,
unsigned int id2 )
116{
117 indices.emplace_back(id1);
118 indices.emplace_back(id2);
119}

References indices.

Referenced by Slic3r::GUI::SceneRaycaster::SceneRaycaster(), Slic3r::GUI::GLCanvas3D::_render_cad_grid(), Slic3r::GUI::GLGizmoTextureDisplacement::build_wireframe_from_its(), Slic3r::GUI::GLModel::init_from(), Slic3r::GUI::init_from_scale(), Slic3r::GUI::init_from_snap_radii(), Slic3r::GUI::init_model_from_lines(), Slic3r::GUI::init_model_from_lines(), Slic3r::GUI::its_make_line(), Slic3r::GUI::GLGizmoMove3D::on_render(), Slic3r::GUI::UVEditorCanvas::rebuild_rotation_dial(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_seam_anchor_overlay(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_seam_hover_overlay(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_seam_overlay(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_subdivide_preview(), Slic3r::GUI::GLSelectionRectangle::render(), Slic3r::GUI::GLGizmoTextureDisplacement::render_adjust_texture_gizmo(), Slic3r::GUI::GLGizmoBase::render_cross_mark(), Slic3r::GUI::GLGizmoPainterBase::render_cursor_circle(), Slic3r::GUI::GLGizmoMeasure::render_dimensioning(), Slic3r::GUI::GLGizmoRotate::render_grabber_connection(), Slic3r::GUI::GLGizmoScale3D::render_grabbers_connection(), Slic3r::GUI::GLCanvas3D::LayersEditing::render_profile(), Slic3r::GUI::GLGizmoRotate::render_reference_radius(), Slic3r::GUI::GLGizmoRotate::render_scale(), Slic3r::GUI::GLGizmoRotate::render_snap_radii(), and Slic3r::GUI::TriangleSelectorGUI::update_paint_contour().

Here is the caller graph for this function:

◆ add_triangle()

void Slic3r::GUI::GLModel::Geometry::add_triangle ( unsigned int id1,
unsigned int id2,
unsigned int id3 )
122{
123 indices.emplace_back(id1);
124 indices.emplace_back(id2);
125 indices.emplace_back(id3);
126}

References indices.

Referenced by Slic3r::GUI::GLCanvas3D::_render_background(), Slic3r::GUI::GLCanvas3D::_render_shadows(), Slic3r::GUI::GLCanvas3D::_render_sla_slices(), Slic3r::GUI::append_expolygon_triangles(), Slic3r::GUI::append_paint_patch(), Slic3r::GUI::DesignSketchTool::append_ribbons(), Slic3r::GUI::circular_arrow(), anonymous_namespace{TextLines.cpp}::create_geometry(), Slic3r::GUI::diamond(), 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::GLModel::init_from(), Slic3r::GUI::init_model_from_poly(), Slic3r::GUI::init_plane_data(), Slic3r::GUI::init_torus_data(), Slic3r::GUI::UVEditorCanvas::rebuild_background_quad(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_island_overlay(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_painted_colors(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_shaded_preview_mesh(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_uvcheck_mesh(), Slic3r::GUI::MeshClipper::recalculate_triangles(), Slic3r::GUI::UVEditorCanvas::render(), Slic3r::GUI::GLCanvas3D::LayersEditing::render_active_object_annotations(), Slic3r::GUI::GLGizmoTextureDisplacement::render_adjust_texture_gizmo(), Slic3r::GUI::GLGizmoMove3D::render_align_preview(), Slic3r::GUI::DesignSketchTool::render_base_pick(), Slic3r::GUI::DesignSketchTool::render_datum_gizmo(), Slic3r::GUI::DesignSketchTool::render_datum_planes(), Slic3r::GUI::GLGizmoMeasure::render_dimensioning(), 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::Selection::render_sidebar_layers_hints(), Slic3r::GUI::DesignSketchTool::render_solid_sel(), Slic3r::GUI::GLTexture::render_sub_texture(), Slic3r::GUI::DesignSketchTool::render_view_helpers(), Slic3r::GUI::GLCanvas3D::SequentialPrintClearance::set_polygons(), Slic3r::GUI::smooth_cylinder(), Slic3r::GUI::smooth_sphere(), Slic3r::GUI::smooth_torus(), Slic3r::GUI::stilized_arrow(), Slic3r::GUI::straight_arrow(), Slic3r::thick_lines_to_geometry(), Slic3r::thick_lines_to_geometry(), Slic3r::GLVolume::SinkingContours::update(), and Slic3r::GUI::TriangleSelectorGUI::update_render_data().

◆ add_vertex() [1/7]

void Slic3r::GUI::GLModel::Geometry::add_vertex ( const Vec2f & position)
44{
45 assert(format.vertex_layout == EVertexLayout::P2);
46 vertices.emplace_back(position.x());
47 vertices.emplace_back(position.y());
48}
std::vector< float > vertices
Definition GLModel.hpp:65
Format format
Definition GLModel.hpp:64

References format, P2, and vertices.

Referenced by Slic3r::GUI::SceneRaycaster::SceneRaycaster(), Slic3r::GUI::GLCanvas3D::_render_background(), Slic3r::GUI::GLCanvas3D::_render_cad_grid(), Slic3r::GUI::GLCanvas3D::_render_shadows(), Slic3r::GUI::GLCanvas3D::_render_sla_slices(), Slic3r::GUI::append_expolygon_triangles(), Slic3r::GUI::append_paint_patch(), Slic3r::GUI::DesignSketchTool::append_ribbons(), Slic3r::GUI::GLGizmoTextureDisplacement::build_wireframe_from_its(), Slic3r::GUI::circular_arrow(), anonymous_namespace{TextLines.cpp}::create_geometry(), Slic3r::GUI::diamond(), 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::GLModel::init_from(), Slic3r::GUI::GLModel::init_from(), Slic3r::GUI::init_from_angle_arc(), Slic3r::GUI::init_from_circle(), Slic3r::GUI::init_from_scale(), Slic3r::GUI::init_from_snap_radii(), Slic3r::GUI::init_model_from_lines(), Slic3r::GUI::init_model_from_lines(), Slic3r::GUI::init_model_from_poly(), Slic3r::GUI::init_plane_data(), Slic3r::GUI::init_torus_data(), Slic3r::GUI::its_make_line(), Slic3r::GUI::GLGizmoMove3D::on_render(), Slic3r::GUI::UVEditorCanvas::rebuild_background_quad(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_island_overlay(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_painted_colors(), Slic3r::GUI::UVEditorCanvas::rebuild_rotation_dial(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_seam_anchor_overlay(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_seam_hover_overlay(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_seam_overlay(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_shaded_preview_mesh(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_subdivide_preview(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_uvcheck_mesh(), Slic3r::GUI::MeshClipper::recalculate_triangles(), Slic3r::GUI::GLSelectionRectangle::render(), Slic3r::GUI::UVEditorCanvas::render(), Slic3r::GUI::GLCanvas3D::LayersEditing::render_active_object_annotations(), Slic3r::GUI::GLGizmoTextureDisplacement::render_adjust_texture_gizmo(), Slic3r::GUI::GLGizmoMove3D::render_align_preview(), Slic3r::GUI::GLGizmoRotate::render_angle_arc(), Slic3r::GUI::DesignSketchTool::render_base_pick(), Slic3r::GUI::Selection::render_bounding_box(), Slic3r::GUI::GLGizmoRotate::render_circle(), Slic3r::GUI::GLGizmoBase::render_cross_mark(), Slic3r::GUI::GLGizmoPainterBase::render_cursor_circle(), Slic3r::GUI::DesignSketchTool::render_datum_gizmo(), Slic3r::GUI::DesignSketchTool::render_datum_planes(), Slic3r::GUI::GLGizmoMeasure::render_dimensioning(), Slic3r::GUI::GLGizmoRotate::render_grabber_connection(), Slic3r::GUI::GLGizmoScale3D::render_grabbers_connection(), Slic3r::GUI::DesignSketchTool::render_helix_gizmo(), Slic3r::GUI::DesignSketchTool::render_hole_gizmo(), Slic3r::GUI::GLCanvas3D::LayersEditing::render_profile(), Slic3r::GUI::DesignSketchTool::render_reference_axes(), Slic3r::GUI::GLGizmoRotate::render_reference_radius(), Slic3r::GUI::DesignSketchTool::render_rib_gizmo(), Slic3r::GUI::GLGizmoRotate::render_scale(), Slic3r::GUI::Selection::render_sidebar_layers_hints(), Slic3r::GUI::GLGizmoRotate::render_snap_radii(), Slic3r::GUI::DesignSketchTool::render_solid_sel(), Slic3r::GUI::GLTexture::render_sub_texture(), Slic3r::GUI::DesignSketchTool::render_view_helpers(), Slic3r::GUI::GLCanvas3D::SequentialPrintClearance::set_polygons(), Slic3r::GUI::smooth_cylinder(), Slic3r::GUI::smooth_sphere(), Slic3r::GUI::smooth_torus(), Slic3r::GUI::stilized_arrow(), Slic3r::GUI::straight_arrow(), Slic3r::thick_lines_to_geometry(), Slic3r::thick_lines_to_geometry(), Slic3r::GLVolume::SinkingContours::update(), Slic3r::GUI::TriangleSelectorGUI::update_paint_contour(), and Slic3r::GUI::TriangleSelectorGUI::update_render_data().

◆ add_vertex() [2/7]

void Slic3r::GUI::GLModel::Geometry::add_vertex ( const Vec2f & position,
const Vec2f & tex_coord )
51{
52 assert(format.vertex_layout == EVertexLayout::P2T2);
53 vertices.emplace_back(position.x());
54 vertices.emplace_back(position.y());
55 vertices.emplace_back(tex_coord.x());
56 vertices.emplace_back(tex_coord.y());
57}

References format, P2T2, and vertices.

◆ add_vertex() [3/7]

void Slic3r::GUI::GLModel::Geometry::add_vertex ( const Vec3f & position)
60{
61 assert(format.vertex_layout == EVertexLayout::P3);
62 vertices.emplace_back(position.x());
63 vertices.emplace_back(position.y());
64 vertices.emplace_back(position.z());
65}

References format, P3, and vertices.

◆ add_vertex() [4/7]

void Slic3r::GUI::GLModel::Geometry::add_vertex ( const Vec3f & position,
const Vec2f & tex_coord )
68{
69 assert(format.vertex_layout == EVertexLayout::P3T2);
70 vertices.emplace_back(position.x());
71 vertices.emplace_back(position.y());
72 vertices.emplace_back(position.z());
73 vertices.emplace_back(tex_coord.x());
74 vertices.emplace_back(tex_coord.y());
75}

References format, P3T2, and vertices.

◆ add_vertex() [5/7]

void Slic3r::GUI::GLModel::Geometry::add_vertex ( const Vec3f & position,
const Vec3f & normal )
78{
79 assert(format.vertex_layout == EVertexLayout::P3N3);
80 vertices.emplace_back(position.x());
81 vertices.emplace_back(position.y());
82 vertices.emplace_back(position.z());
83 vertices.emplace_back(normal.x());
84 vertices.emplace_back(normal.y());
85 vertices.emplace_back(normal.z());
86}
Point normal(Point pt, double scale)
Definition TreeSupport.cpp:112

References format, Slic3r::normal(), P3N3, and vertices.

Here is the call graph for this function:

◆ add_vertex() [6/7]

void Slic3r::GUI::GLModel::Geometry::add_vertex ( const Vec3f & position,
const Vec3f & normal,
const Vec2f & tex_coord )
89{
90 assert(format.vertex_layout == EVertexLayout::P3N3T2);
91 vertices.emplace_back(position.x());
92 vertices.emplace_back(position.y());
93 vertices.emplace_back(position.z());
94 vertices.emplace_back(normal.x());
95 vertices.emplace_back(normal.y());
96 vertices.emplace_back(normal.z());
97 vertices.emplace_back(tex_coord.x());
98 vertices.emplace_back(tex_coord.y());
99}

References format, Slic3r::normal(), P3N3T2, and vertices.

Here is the call graph for this function:

◆ add_vertex() [7/7]

void Slic3r::GUI::GLModel::Geometry::add_vertex ( const Vec4f & position)
102{
103 assert(format.vertex_layout == EVertexLayout::P4);
104 vertices.emplace_back(position.x());
105 vertices.emplace_back(position.y());
106 vertices.emplace_back(position.z());
107 vertices.emplace_back(position.w());
108}

References format, P4, and vertices.

◆ extract_index()

unsigned int Slic3r::GUI::GLModel::Geometry::extract_index ( size_t id) const
219{
220 if (indices_count() <= id) {
221 assert(false);
222 return -1;
223 }
224
225 return indices[id];
226}
size_t indices_count() const
Definition GLModel.hpp:101

References indices, and Slic3r::GUI::GLModel::indices_count().

Referenced by get_as_indexed_triangle_set(), Slic3r::GUI::init_raycaster_from_model(), Slic3r::thick_lines_to_geometry(), and Slic3r::thick_lines_to_geometry().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ extract_normal_3()

Vec3f Slic3r::GUI::GLModel::Geometry::extract_normal_3 ( size_t id) const
163{
164 const size_t n_stride = normal_stride_floats(format);
165 if (n_stride != 3) {
166 assert(false);
167 return { FLT_MAX, FLT_MAX, FLT_MAX };
168 }
169
170 if (vertices_count() <= id) {
171 assert(false);
172 return { FLT_MAX, FLT_MAX, FLT_MAX };
173 }
174
175 const float* start = &vertices[id * vertex_stride_floats(format) + normal_offset_floats(format)];
176 return { *(start + 0), *(start + 1), *(start + 2) };
177}
size_t vertices_count() const
Definition GLModel.hpp:100
static size_t normal_stride_floats(const Format &format)
Definition GLModel.cpp:298
static size_t vertex_stride_floats(const Format &format)
Definition GLModel.cpp:253
static size_t normal_offset_floats(const Format &format)
Definition GLModel.cpp:308

References format, normal_offset_floats(), normal_stride_floats(), vertex_stride_floats(), vertices, and Slic3r::GUI::GLModel::vertices_count().

Referenced by Slic3r::thick_lines_to_geometry(), and Slic3r::thick_lines_to_geometry().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ extract_position_2()

Vec2f Slic3r::GUI::GLModel::Geometry::extract_position_2 ( size_t id) const
129{
130 const size_t p_stride = position_stride_floats(format);
131 if (p_stride != 2) {
132 assert(false);
133 return { FLT_MAX, FLT_MAX };
134 }
135
136 if (vertices_count() <= id) {
137 assert(false);
138 return { FLT_MAX, FLT_MAX };
139 }
140
141 const float* start = &vertices[id * vertex_stride_floats(format) + position_offset_floats(format)];
142 return { *(start + 0), *(start + 1) };
143}
static size_t position_offset_floats(const Format &format)
Definition GLModel.cpp:283
static size_t position_stride_floats(const Format &format)
Definition GLModel.cpp:268

References format, position_offset_floats(), position_stride_floats(), vertex_stride_floats(), vertices, and Slic3r::GUI::GLModel::vertices_count().

Here is the call graph for this function:

◆ extract_position_3()

Vec3f Slic3r::GUI::GLModel::Geometry::extract_position_3 ( size_t id) const
146{
147 const size_t p_stride = position_stride_floats(format);
148 if (p_stride != 3) {
149 assert(false);
150 return { FLT_MAX, FLT_MAX, FLT_MAX };
151 }
152
153 if (vertices_count() <= id) {
154 assert(false);
155 return { FLT_MAX, FLT_MAX, FLT_MAX };
156 }
157
158 const float* start = &vertices[id * vertex_stride_floats(format) + position_offset_floats(format)];
159 return { *(start + 0), *(start + 1), *(start + 2) };
160}

References format, position_offset_floats(), position_stride_floats(), vertex_stride_floats(), vertices, and Slic3r::GUI::GLModel::vertices_count().

Referenced by get_as_indexed_triangle_set(), Slic3r::GUI::GLModel::init_from(), Slic3r::GUI::GLModel::init_from(), Slic3r::GUI::init_raycaster_from_model(), Slic3r::thick_lines_to_geometry(), and Slic3r::thick_lines_to_geometry().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ extract_tex_coord_2()

Vec2f Slic3r::GUI::GLModel::Geometry::extract_tex_coord_2 ( size_t id) const
180{
181 const size_t t_stride = tex_coord_stride_floats(format);
182 if (t_stride != 2) {
183 assert(false);
184 return { FLT_MAX, FLT_MAX };
185 }
186
187 if (vertices_count() <= id) {
188 assert(false);
189 return { FLT_MAX, FLT_MAX };
190 }
191
192 const float* start = &vertices[id * vertex_stride_floats(format) + tex_coord_offset_floats(format)];
193 return { *(start + 0), *(start + 1) };
194}
static size_t tex_coord_offset_floats(const Format &format)
Definition GLModel.cpp:329
static size_t tex_coord_stride_floats(const Format &format)
Definition GLModel.cpp:318

References format, tex_coord_offset_floats(), tex_coord_stride_floats(), vertex_stride_floats(), vertices, and Slic3r::GUI::GLModel::vertices_count().

Here is the call graph for this function:

◆ get_as_indexed_triangle_set()

indexed_triangle_set Slic3r::GUI::GLModel::Geometry::get_as_indexed_triangle_set ( ) const
239{
240 indexed_triangle_set its;
241 its.vertices.reserve(vertices_count());
242 for (size_t i = 0; i < vertices_count(); ++i) {
243 its.vertices.emplace_back(extract_position_3(i));
244 }
245 its.indices.reserve(indices_count() / 3);
246 for (size_t i = 0; i < indices_count() / 3; ++i) {
247 const size_t tri_id = i * 3;
248 its.indices.emplace_back(extract_index(tri_id), extract_index(tri_id + 1), extract_index(tri_id + 2));
249 }
250 return its;
251}
Vec3f extract_position_3(size_t id) const
Definition GLModel.cpp:145
unsigned int extract_index(size_t id) const
Definition GLModel.cpp:218

References extract_index(), extract_position_3(), Slic3r::GUI::GLModel::indices_count(), and Slic3r::GUI::GLModel::vertices_count().

Referenced by Slic3r::GUI::GLGizmoBrimEars::GLGizmoBrimEars(), Slic3r::GUI::GLGizmoMeasure::GLGizmoMeasure(), Slic3r::GUI::GLGizmoMeasure::init_circle_glmodel(), and Slic3r::GUI::GLGizmoMeasure::init_plane_glmodel().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ has_normal()

bool Slic3r::GUI::GLModel::Geometry::has_normal ( const Format & format)
static
367{
368 switch (format.vertex_layout)
369 {
374 case EVertexLayout::P4: { return false; }
376 case EVertexLayout::P3N3T2: { return true; }
377 default: { assert(false); return false; }
378 };
379}

References format, P2, P2T2, P3, P3N3, P3N3T2, P3T2, and P4.

Referenced by Slic3r::GUI::GLModel::render(), and Slic3r::GUI::GLModel::render_instanced().

Here is the caller graph for this function:

◆ has_position()

bool Slic3r::GUI::GLModel::Geometry::has_position ( const Format & format)
static
352{
353 switch (format.vertex_layout)
354 {
361 case EVertexLayout::P4: { return true; }
362 default: { assert(false); return false; }
363 };
364}

References format, P2, P2T2, P3, P3N3, P3N3T2, P3T2, and P4.

Referenced by Slic3r::GUI::GLModel::render(), and Slic3r::GUI::GLModel::render_instanced().

Here is the caller graph for this function:

◆ has_tex_coord()

bool Slic3r::GUI::GLModel::Geometry::has_tex_coord ( const Format & format)
static
382{
383 switch (format.vertex_layout)
384 {
387 case EVertexLayout::P3N3T2: { return true; }
391 case EVertexLayout::P4: { return false; }
392 default: { assert(false); return false; }
393 };
394}

References format, P2, P2T2, P3, P3N3, P3N3T2, P3T2, and P4.

Referenced by Slic3r::GUI::GLModel::render().

Here is the caller graph for this function:

◆ index_stride_bytes()

size_t Slic3r::GUI::GLModel::Geometry::index_stride_bytes ( const Geometry & data)
static
341{
342 switch (data.index_type)
343 {
344 case EIndexType::UINT: { return sizeof(unsigned int); }
345 case EIndexType::USHORT: { return sizeof(unsigned short); }
346 case EIndexType::UBYTE: { return sizeof(unsigned char); }
347 default: { assert(false); return 0; }
348 };
349}

References index_type, UBYTE, UINT, and USHORT.

Referenced by indices_size_bytes(), Slic3r::GUI::GLModel::indices_size_bytes(), and Slic3r::GUI::GLModel::render().

Here is the caller graph for this function:

◆ indices_count()

size_t Slic3r::GUI::GLModel::Geometry::indices_count ( ) const
inline

◆ indices_size_bytes()

size_t Slic3r::GUI::GLModel::Geometry::indices_size_bytes ( ) const
inline
105{ return indices.size() * index_stride_bytes(*this); }
static size_t index_stride_bytes(const Geometry &data)
Definition GLModel.cpp:340

References index_stride_bytes(), and indices.

Referenced by Slic3r::GUI::GLModel::send_to_gpu().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_empty()

◆ normal_offset_bytes()

size_t Slic3r::GUI::GLModel::Geometry::normal_offset_bytes ( const Format & format)
inlinestatic
120{ return normal_offset_floats(format) * sizeof(float); }

References format, and normal_offset_floats().

Referenced by Slic3r::GUI::GLModel::render(), and Slic3r::GUI::GLModel::render_instanced().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ normal_offset_floats()

size_t Slic3r::GUI::GLModel::Geometry::normal_offset_floats ( const Format & format)
static
309{
310 switch (format.vertex_layout)
311 {
313 case EVertexLayout::P3N3T2: { return 3; }
314 default: { assert(false); return 0; }
315 };
316}

References format, P3N3, and P3N3T2.

Referenced by extract_normal_3(), and normal_offset_bytes().

Here is the caller graph for this function:

◆ normal_stride_bytes()

size_t Slic3r::GUI::GLModel::Geometry::normal_stride_bytes ( const Format & format)
inlinestatic
118{ return normal_stride_floats(format) * sizeof(float); }

References format, and normal_stride_floats().

Here is the call graph for this function:

◆ normal_stride_floats()

size_t Slic3r::GUI::GLModel::Geometry::normal_stride_floats ( const Format & format)
static
299{
300 switch (format.vertex_layout)
301 {
303 case EVertexLayout::P3N3T2: { return 3; }
304 default: { assert(false); return 0; }
305 };
306}

References format, P3N3, and P3N3T2.

Referenced by extract_normal_3(), normal_stride_bytes(), Slic3r::GUI::GLModel::render(), and Slic3r::GUI::GLModel::render_instanced().

Here is the caller graph for this function:

◆ position_offset_bytes()

size_t Slic3r::GUI::GLModel::Geometry::position_offset_bytes ( const Format & format)
inlinestatic
115{ return position_offset_floats(format) * sizeof(float); }

References format, and position_offset_floats().

Referenced by Slic3r::GUI::GLModel::render(), and Slic3r::GUI::GLModel::render_instanced().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ position_offset_floats()

size_t Slic3r::GUI::GLModel::Geometry::position_offset_floats ( const Format & format)
static
284{
285 switch (format.vertex_layout)
286 {
293 case EVertexLayout::P4: { return 0; }
294 default: { assert(false); return 0; }
295 };
296}

References format, P2, P2T2, P3, P3N3, P3N3T2, P3T2, and P4.

Referenced by Slic3r::GUI::all_vertices_inside(), extract_position_2(), extract_position_3(), and position_offset_bytes().

Here is the caller graph for this function:

◆ position_stride_bytes()

size_t Slic3r::GUI::GLModel::Geometry::position_stride_bytes ( const Format & format)
inlinestatic
113{ return position_stride_floats(format) * sizeof(float); }

References format, and position_stride_floats().

Here is the call graph for this function:

◆ position_stride_floats()

size_t Slic3r::GUI::GLModel::Geometry::position_stride_floats ( const Format & format)
static
269{
270 switch (format.vertex_layout)
271 {
273 case EVertexLayout::P2T2: { return 2; }
277 case EVertexLayout::P3N3T2: { return 3; }
278 case EVertexLayout::P4: { return 4; }
279 default: { assert(false); return 0; }
280 };
281}

References format, P2, P2T2, P3, P3N3, P3N3T2, P3T2, and P4.

Referenced by Slic3r::GUI::all_vertices_inside(), extract_position_2(), extract_position_3(), Slic3r::GUI::GLModel::init_from(), position_stride_bytes(), Slic3r::GUI::GLModel::render(), and Slic3r::GUI::GLModel::render_instanced().

Here is the caller graph for this function:

◆ remove_vertex()

void Slic3r::GUI::GLModel::Geometry::remove_vertex ( size_t id)
229{
230 assert(id < vertices_count());
231 if (id < vertices_count()) {
232 const size_t stride = vertex_stride_floats(format);
233 std::vector<float>::const_iterator it = vertices.begin() + id * stride;
234 vertices.erase(it, it + stride);
235 }
236}

References format, vertex_stride_floats(), vertices, and Slic3r::GUI::GLModel::vertices_count().

Referenced by Slic3r::thick_lines_to_geometry(), and Slic3r::thick_lines_to_geometry().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ reserve_indices()

void Slic3r::GUI::GLModel::Geometry::reserve_indices ( size_t indices_count)
inline
71{ indices.reserve(indices_count); }

References indices, and indices_count().

Referenced by Slic3r::GUI::SceneRaycaster::SceneRaycaster(), Slic3r::GUI::GLCanvas3D::_render_background(), Slic3r::GUI::GLCanvas3D::_render_cad_grid(), Slic3r::GUI::GLCanvas3D::_render_shadows(), Slic3r::GUI::GLCanvas3D::_render_sla_slices(), Slic3r::GUI::append_expolygon_triangles(), Slic3r::GUI::GLGizmoTextureDisplacement::build_wireframe_from_its(), Slic3r::GUI::circular_arrow(), anonymous_namespace{TextLines.cpp}::create_geometry(), Slic3r::GUI::diamond(), Slic3r::GUI::init_exclusion_volume_prism_model(), Slic3r::GUI::GLModel::init_from(), Slic3r::GUI::GLModel::init_from(), Slic3r::GUI::init_from_angle_arc(), Slic3r::GUI::init_from_circle(), Slic3r::GUI::init_from_scale(), Slic3r::GUI::init_from_snap_radii(), Slic3r::GUI::init_model_from_lines(), Slic3r::GUI::init_model_from_lines(), Slic3r::GUI::init_model_from_poly(), Slic3r::GUI::init_plane_data(), Slic3r::GUI::init_torus_data(), Slic3r::GUI::its_make_line(), Slic3r::GUI::GLGizmoMove3D::on_render(), Slic3r::GUI::UVEditorCanvas::rebuild_background_quad(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_paint_overlay(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_painted_colors(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_seam_hover_overlay(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_seam_overlay(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_shaded_preview_mesh(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_subdivide_preview(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_uvcheck_mesh(), Slic3r::GUI::MeshClipper::recalculate_triangles(), Slic3r::GUI::GLSelectionRectangle::render(), Slic3r::GUI::UVEditorCanvas::render(), Slic3r::GUI::GLCanvas3D::LayersEditing::render_active_object_annotations(), Slic3r::GUI::GLGizmoTextureDisplacement::render_adjust_texture_gizmo(), Slic3r::GUI::GLGizmoMove3D::render_align_preview(), Slic3r::GUI::GLGizmoRotate::render_angle_arc(), Slic3r::GUI::Selection::render_bounding_box(), Slic3r::GUI::GLGizmoRotate::render_circle(), Slic3r::GUI::GLGizmoBase::render_cross_mark(), Slic3r::GUI::GLGizmoPainterBase::render_cursor_circle(), Slic3r::GUI::GLGizmoMeasure::render_dimensioning(), Slic3r::GUI::GLGizmoRotate::render_grabber_connection(), Slic3r::GUI::GLGizmoScale3D::render_grabbers_connection(), Slic3r::GUI::GLCanvas3D::LayersEditing::render_profile(), Slic3r::GUI::GLGizmoRotate::render_reference_radius(), Slic3r::GUI::GLGizmoRotate::render_scale(), Slic3r::GUI::Selection::render_sidebar_layers_hints(), Slic3r::GUI::GLGizmoRotate::render_snap_radii(), Slic3r::GUI::GLTexture::render_sub_texture(), Slic3r::GUI::GLCanvas3D::SequentialPrintClearance::set_polygons(), Slic3r::GUI::smooth_cylinder(), Slic3r::GUI::smooth_sphere(), Slic3r::GUI::smooth_torus(), Slic3r::GUI::stilized_arrow(), Slic3r::GUI::straight_arrow(), Slic3r::GLVolume::SinkingContours::update(), and Slic3r::GUI::TriangleSelectorGUI::update_paint_contour().

Here is the call graph for this function:

◆ reserve_vertices()

void Slic3r::GUI::GLModel::Geometry::reserve_vertices ( size_t vertices_count)
inline

References format, vertex_stride_floats(), vertices, and vertices_count().

Referenced by Slic3r::GUI::SceneRaycaster::SceneRaycaster(), Slic3r::GUI::GLCanvas3D::_render_background(), Slic3r::GUI::GLCanvas3D::_render_cad_grid(), Slic3r::GUI::GLCanvas3D::_render_shadows(), Slic3r::GUI::GLCanvas3D::_render_sla_slices(), Slic3r::GUI::append_expolygon_triangles(), Slic3r::GUI::GLGizmoTextureDisplacement::build_wireframe_from_its(), Slic3r::GUI::circular_arrow(), anonymous_namespace{TextLines.cpp}::create_geometry(), Slic3r::GUI::diamond(), Slic3r::GUI::init_exclusion_volume_prism_model(), Slic3r::GUI::GLModel::init_from(), Slic3r::GUI::GLModel::init_from(), Slic3r::GUI::init_from_angle_arc(), Slic3r::GUI::init_from_circle(), Slic3r::GUI::init_from_scale(), Slic3r::GUI::init_from_snap_radii(), Slic3r::GUI::init_model_from_lines(), Slic3r::GUI::init_model_from_lines(), Slic3r::GUI::init_model_from_poly(), Slic3r::GUI::init_plane_data(), Slic3r::GUI::init_torus_data(), Slic3r::GUI::its_make_line(), Slic3r::GUI::GLGizmoMove3D::on_render(), Slic3r::GUI::UVEditorCanvas::rebuild_background_quad(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_paint_overlay(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_painted_colors(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_seam_hover_overlay(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_seam_overlay(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_shaded_preview_mesh(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_subdivide_preview(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_uvcheck_mesh(), Slic3r::GUI::MeshClipper::recalculate_triangles(), Slic3r::GUI::GLSelectionRectangle::render(), Slic3r::GUI::UVEditorCanvas::render(), Slic3r::GUI::GLCanvas3D::LayersEditing::render_active_object_annotations(), Slic3r::GUI::GLGizmoTextureDisplacement::render_adjust_texture_gizmo(), Slic3r::GUI::GLGizmoMove3D::render_align_preview(), Slic3r::GUI::GLGizmoRotate::render_angle_arc(), Slic3r::GUI::Selection::render_bounding_box(), Slic3r::GUI::GLGizmoRotate::render_circle(), Slic3r::GUI::GLGizmoBase::render_cross_mark(), Slic3r::GUI::GLGizmoPainterBase::render_cursor_circle(), Slic3r::GUI::GLGizmoMeasure::render_dimensioning(), Slic3r::GUI::GLGizmoRotate::render_grabber_connection(), Slic3r::GUI::GLGizmoScale3D::render_grabbers_connection(), Slic3r::GUI::GLCanvas3D::LayersEditing::render_profile(), Slic3r::GUI::GLGizmoRotate::render_reference_radius(), Slic3r::GUI::GLGizmoRotate::render_scale(), Slic3r::GUI::Selection::render_sidebar_layers_hints(), Slic3r::GUI::GLGizmoRotate::render_snap_radii(), Slic3r::GUI::GLTexture::render_sub_texture(), Slic3r::GUI::GLCanvas3D::SequentialPrintClearance::set_polygons(), Slic3r::GUI::smooth_cylinder(), Slic3r::GUI::smooth_sphere(), Slic3r::GUI::smooth_torus(), Slic3r::GUI::stilized_arrow(), Slic3r::GUI::straight_arrow(), Slic3r::GLVolume::SinkingContours::update(), and Slic3r::GUI::TriangleSelectorGUI::update_paint_contour().

Here is the call graph for this function:

◆ set_index()

void Slic3r::GUI::GLModel::Geometry::set_index ( size_t id,
unsigned int index )
212{
213 assert(id < indices_count());
214 if (id < indices_count())
215 indices[id] = index;
216}

References indices, and Slic3r::GUI::GLModel::indices_count().

Referenced by Slic3r::thick_lines_to_geometry(), and Slic3r::thick_lines_to_geometry().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_vertex()

void Slic3r::GUI::GLModel::Geometry::set_vertex ( size_t id,
const Vec3f & position,
const Vec3f & normal )
197{
198 assert(format.vertex_layout == EVertexLayout::P3N3);
199 assert(id < vertices_count());
200 if (id < vertices_count()) {
201 float* start = &vertices[id * vertex_stride_floats(format)];
202 *(start + 0) = position.x();
203 *(start + 1) = position.y();
204 *(start + 2) = position.z();
205 *(start + 3) = normal.x();
206 *(start + 4) = normal.y();
207 *(start + 5) = normal.z();
208 }
209}

References format, Slic3r::normal(), P3N3, vertex_stride_floats(), vertices, and Slic3r::GUI::GLModel::vertices_count().

Referenced by Slic3r::thick_lines_to_geometry(), and Slic3r::thick_lines_to_geometry().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ tex_coord_offset_bytes()

size_t Slic3r::GUI::GLModel::Geometry::tex_coord_offset_bytes ( const Format & format)
inlinestatic
125{ return tex_coord_offset_floats(format) * sizeof(float); }

References format, and tex_coord_offset_floats().

Referenced by Slic3r::GUI::GLModel::render().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ tex_coord_offset_floats()

size_t Slic3r::GUI::GLModel::Geometry::tex_coord_offset_floats ( const Format & format)
static
330{
331 switch (format.vertex_layout)
332 {
333 case EVertexLayout::P2T2: { return 2; }
334 case EVertexLayout::P3T2: { return 3; }
335 case EVertexLayout::P3N3T2: { return 6; }
336 default: { assert(false); return 0; }
337 };
338}

References format, P2T2, P3N3T2, and P3T2.

Referenced by extract_tex_coord_2(), and tex_coord_offset_bytes().

Here is the caller graph for this function:

◆ tex_coord_stride_bytes()

size_t Slic3r::GUI::GLModel::Geometry::tex_coord_stride_bytes ( const Format & format)
inlinestatic
123{ return tex_coord_stride_floats(format) * sizeof(float); }

References format, and tex_coord_stride_floats().

Here is the call graph for this function:

◆ tex_coord_stride_floats()

size_t Slic3r::GUI::GLModel::Geometry::tex_coord_stride_floats ( const Format & format)
static
319{
320 switch (format.vertex_layout)
321 {
324 case EVertexLayout::P3N3T2: { return 2; }
325 default: { assert(false); return 0; }
326 };
327}

References format, P2T2, P3N3T2, and P3T2.

Referenced by extract_tex_coord_2(), Slic3r::GUI::GLModel::render(), and tex_coord_stride_bytes().

Here is the caller graph for this function:

◆ vertex_stride_bytes()

size_t Slic3r::GUI::GLModel::Geometry::vertex_stride_bytes ( const Format & format)
inlinestatic
110{ return vertex_stride_floats(format) * sizeof(float); }

References format, and vertex_stride_floats().

Referenced by Slic3r::GUI::GLModel::render(), and Slic3r::GUI::GLModel::render_instanced().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ vertex_stride_floats()

size_t Slic3r::GUI::GLModel::Geometry::vertex_stride_floats ( const Format & format)
static
254{
255 switch (format.vertex_layout)
256 {
257 case EVertexLayout::P2: { return 2; }
258 case EVertexLayout::P2T2: { return 4; }
259 case EVertexLayout::P3: { return 3; }
260 case EVertexLayout::P3T2: { return 5; }
261 case EVertexLayout::P3N3: { return 6; }
262 case EVertexLayout::P3N3T2: { return 8; }
263 case EVertexLayout::P4: { return 4; }
264 default: { assert(false); return 0; }
265 };
266}

References format, P2, P2T2, P3, P3N3, P3N3T2, P3T2, and P4.

Referenced by Slic3r::GUI::all_vertices_inside(), extract_normal_3(), extract_position_2(), extract_position_3(), extract_tex_coord_2(), remove_vertex(), reserve_vertices(), set_vertex(), vertex_stride_bytes(), vertices_count(), and Slic3r::GUI::GLModel::vertices_size_floats().

Here is the caller graph for this function:

◆ vertices_count()

◆ vertices_size_bytes()

size_t Slic3r::GUI::GLModel::Geometry::vertices_size_bytes ( ) const
inline
104{ return vertices_size_floats() * sizeof(float); }
size_t vertices_size_floats() const
Definition GLModel.hpp:103

References vertices_size_floats().

Referenced by Slic3r::GUI::GLModel::send_to_gpu().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ vertices_size_floats()

size_t Slic3r::GUI::GLModel::Geometry::vertices_size_floats ( ) const
inline
103{ return vertices.size(); }

References vertices.

Referenced by vertices_size_bytes().

Here is the caller graph for this function:

Member Data Documentation

◆ color

◆ format

Format Slic3r::GUI::GLModel::Geometry::format

Referenced by Slic3r::GUI::SceneRaycaster::SceneRaycaster(), Slic3r::GUI::GLCanvas3D::_render_background(), Slic3r::GUI::GLCanvas3D::_render_cad_grid(), Slic3r::GUI::GLCanvas3D::_render_shadows(), Slic3r::GUI::GLCanvas3D::_render_sla_slices(), add_vertex(), add_vertex(), add_vertex(), add_vertex(), add_vertex(), add_vertex(), add_vertex(), Slic3r::GUI::all_vertices_inside(), Slic3r::GUI::DesignSketchTool::append_ribbons(), Slic3r::GUI::GLGizmoTextureDisplacement::build_wireframe_from_its(), Slic3r::GUI::circular_arrow(), anonymous_namespace{TextLines.cpp}::create_geometry(), Slic3r::GUI::diamond(), 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(), extract_normal_3(), extract_position_2(), extract_position_3(), extract_tex_coord_2(), has_normal(), has_position(), has_tex_coord(), Slic3r::GUI::init_exclusion_volume_prism_model(), Slic3r::GUI::GLModel::init_from(), Slic3r::GUI::GLModel::init_from(), Slic3r::GUI::init_from_angle_arc(), Slic3r::GUI::init_from_circle(), 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::init_plane_data(), Slic3r::GUI::init_torus_data(), Slic3r::GUI::its_make_line(), normal_offset_bytes(), normal_offset_floats(), normal_stride_bytes(), normal_stride_floats(), Slic3r::GUI::GLGizmoMove3D::on_render(), position_offset_bytes(), position_offset_floats(), position_stride_bytes(), position_stride_floats(), Slic3r::GUI::UVEditorCanvas::rebuild_background_quad(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_island_overlay(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_other_paint_overlay(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_paint_overlay(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_painted_colors(), Slic3r::GUI::UVEditorCanvas::rebuild_rotation_dial(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_seam_anchor_overlay(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_seam_hover_overlay(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_seam_overlay(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_shaded_preview_mesh(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_subdivide_preview(), Slic3r::GUI::GLGizmoTextureDisplacement::rebuild_uvcheck_mesh(), Slic3r::GUI::MeshClipper::recalculate_triangles(), remove_vertex(), Slic3r::GUI::GLModel::render(), Slic3r::GUI::GLSelectionRectangle::render(), Slic3r::GUI::UVEditorCanvas::render(), Slic3r::GUI::GLCanvas3D::LayersEditing::render_active_object_annotations(), Slic3r::GUI::GLGizmoTextureDisplacement::render_adjust_texture_gizmo(), Slic3r::GUI::GLGizmoMove3D::render_align_preview(), Slic3r::GUI::GLGizmoRotate::render_angle_arc(), Slic3r::GUI::DesignSketchTool::render_base_pick(), Slic3r::GUI::Selection::render_bounding_box(), Slic3r::GUI::GLGizmoRotate::render_circle(), Slic3r::GUI::GLGizmoBase::render_cross_mark(), Slic3r::GUI::GLGizmoPainterBase::render_cursor_circle(), Slic3r::GUI::DesignSketchTool::render_datum_gizmo(), Slic3r::GUI::DesignSketchTool::render_datum_planes(), Slic3r::GUI::GLGizmoMeasure::render_dimensioning(), Slic3r::GUI::GLGizmoRotate::render_grabber_connection(), Slic3r::GUI::GLGizmoScale3D::render_grabbers_connection(), Slic3r::GUI::DesignSketchTool::render_helix_gizmo(), Slic3r::GUI::DesignSketchTool::render_hole_gizmo(), Slic3r::GUI::GLModel::render_instanced(), Slic3r::GUI::GLCanvas3D::LayersEditing::render_profile(), Slic3r::GUI::DesignSketchTool::render_reference_axes(), Slic3r::GUI::GLGizmoRotate::render_reference_radius(), Slic3r::GUI::DesignSketchTool::render_rib_gizmo(), Slic3r::GUI::GLGizmoRotate::render_scale(), Slic3r::GUI::Selection::render_sidebar_layers_hints(), Slic3r::GUI::GLGizmoRotate::render_snap_radii(), Slic3r::GUI::DesignSketchTool::render_solid_sel(), Slic3r::GUI::GLTexture::render_sub_texture(), Slic3r::GUI::DesignSketchTool::render_view_helpers(), reserve_vertices(), Slic3r::GUI::GLGizmoFdmSupports::run_thread(), Slic3r::GUI::GLCanvas3D::SequentialPrintClearance::set_polygons(), set_vertex(), Slic3r::GUI::smooth_cylinder(), Slic3r::GUI::smooth_sphere(), Slic3r::GUI::smooth_torus(), Slic3r::GUI::stilized_arrow(), Slic3r::GUI::straight_arrow(), tex_coord_offset_bytes(), tex_coord_offset_floats(), tex_coord_stride_bytes(), tex_coord_stride_floats(), Slic3r::GLVolume::SinkingContours::update(), Slic3r::GUI::TriangleSelectorGUI::update_paint_contour(), Slic3r::GUI::TriangleSelectorGUI::update_render_data(), vertex_stride_bytes(), vertex_stride_floats(), and vertices_count().

◆ index_type

◆ indices

std::vector<unsigned int> Slic3r::GUI::GLModel::Geometry::indices

◆ vertices


The documentation for this struct was generated from the following files:
  • /home/runner/work/OrcaSlicer/OrcaSlicer/src/slic3r/GUI/GLModel.hpp
  • /home/runner/work/OrcaSlicer/OrcaSlicer/src/slic3r/GUI/GLModel.cpp