OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::_3DScene Struct Reference

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

Static Public Member Functions

static void thick_lines_to_verts (const Lines &lines, const std::vector< double > &widths, const std::vector< double > &heights, bool closed, double top_z, GUI::GLModel::Geometry &geometry)
static void thick_lines_to_verts (const Lines3 &lines, const std::vector< double > &widths, const std::vector< double > &heights, bool closed, GUI::GLModel::Geometry &geometry)
static void extrusionentity_to_verts (const ExtrusionPath &extrusion_path, float print_z, const Point &copy, GUI::GLModel::Geometry &geometry)
static void extrusionentity_to_verts (const ExtrusionLoop &extrusion_loop, float print_z, const Point &copy, GUI::GLModel::Geometry &geometry)
static void extrusionentity_to_verts (const ExtrusionMultiPath &extrusion_multi_path, float print_z, const Point &copy, GUI::GLModel::Geometry &geometry)
static void extrusionentity_to_verts (const ExtrusionEntityCollection &extrusion_entity_collection, float print_z, const Point &copy, GUI::GLModel::Geometry &geometry)
static void extrusionentity_to_verts (const ExtrusionEntity *extrusion_entity, float print_z, const Point &copy, GUI::GLModel::Geometry &geometry)

Detailed Description

Member Function Documentation

◆ extrusionentity_to_verts() [1/5]

void Slic3r::_3DScene::extrusionentity_to_verts ( const ExtrusionEntity * extrusion_entity,
float print_z,
const Point & copy,
GUI::GLModel::Geometry & geometry )
static
2439{
2440 if (extrusion_entity != nullptr) {
2441 auto* extrusion_path = dynamic_cast<const ExtrusionPath*>(extrusion_entity);
2442 if (extrusion_path != nullptr)
2443 extrusionentity_to_verts(*extrusion_path, print_z, copy, geometry);
2444 else {
2445 auto* extrusion_loop = dynamic_cast<const ExtrusionLoop*>(extrusion_entity);
2446 if (extrusion_loop != nullptr)
2447 extrusionentity_to_verts(*extrusion_loop, print_z, copy, geometry);
2448 else {
2449 auto* extrusion_multi_path = dynamic_cast<const ExtrusionMultiPath*>(extrusion_entity);
2450 if (extrusion_multi_path != nullptr)
2451 extrusionentity_to_verts(*extrusion_multi_path, print_z, copy, geometry);
2452 else {
2453 auto* extrusion_entity_collection = dynamic_cast<const ExtrusionEntityCollection*>(extrusion_entity);
2454 if (extrusion_entity_collection != nullptr)
2455 extrusionentity_to_verts(*extrusion_entity_collection, print_z, copy, geometry);
2456 else
2457 throw Slic3r::RuntimeError("Unexpected extrusion_entity type in to_verts()");
2458 }
2459 }
2460 }
2461 }
2462}
static void extrusionentity_to_verts(const ExtrusionPath &extrusion_path, float print_z, const Point &copy, GUI::GLModel::Geometry &geometry)
Definition 3DScene.cpp:2385

References extrusionentity_to_verts().

Here is the call graph for this function:

◆ extrusionentity_to_verts() [2/5]

void Slic3r::_3DScene::extrusionentity_to_verts ( const ExtrusionEntityCollection & extrusion_entity_collection,
float print_z,
const Point & copy,
GUI::GLModel::Geometry & geometry )
static
2433{
2434 for (const ExtrusionEntity* extrusion_entity : extrusion_entity_collection.entities)
2435 extrusionentity_to_verts(extrusion_entity, print_z, copy, geometry);
2436}

References Slic3r::ExtrusionEntityCollection::entities, and extrusionentity_to_verts().

Here is the call graph for this function:

◆ extrusionentity_to_verts() [3/5]

void Slic3r::_3DScene::extrusionentity_to_verts ( const ExtrusionLoop & extrusion_loop,
float print_z,
const Point & copy,
GUI::GLModel::Geometry & geometry )
static
2398{
2399 Lines lines;
2400 std::vector<double> widths;
2401 std::vector<double> heights;
2402 for (const ExtrusionPath& extrusion_path : extrusion_loop.paths) {
2403 Polyline polyline = extrusion_path.polyline.to_polyline();
2404 polyline.remove_duplicate_points();
2405 polyline.translate(copy);
2406 const Lines lines_this = polyline.lines();
2407 append(lines, lines_this);
2408 widths.insert(widths.end(), lines_this.size(), extrusion_path.width);
2409 heights.insert(heights.end(), lines_this.size(), extrusion_path.height);
2410 }
2411 thick_lines_to_verts(lines, widths, heights, true, print_z, geometry);
2412}
std::vector< Line > Lines
Definition Line.hpp:20
void append(std::vector< T, Alloc > &dest, const std::vector< T, Alloc2 > &src)
Definition libslic3r.h:157
static void thick_lines_to_verts(const Lines &lines, const std::vector< double > &widths, const std::vector< double > &heights, bool closed, double top_z, GUI::GLModel::Geometry &geometry)
Definition 3DScene.cpp:2363

References Slic3r::append(), Slic3r::ExtrusionPath::height, Slic3r::Polyline::lines(), Slic3r::ExtrusionLoop::paths, Slic3r::ExtrusionPath::polyline, Slic3r::MultiPoint::remove_duplicate_points(), thick_lines_to_verts(), Slic3r::Polyline3::to_polyline(), Slic3r::MultiPoint::translate(), and Slic3r::ExtrusionPath::width.

Here is the call graph for this function:

◆ extrusionentity_to_verts() [4/5]

void Slic3r::_3DScene::extrusionentity_to_verts ( const ExtrusionMultiPath & extrusion_multi_path,
float print_z,
const Point & copy,
GUI::GLModel::Geometry & geometry )
static
2416{
2417 Lines lines;
2418 std::vector<double> widths;
2419 std::vector<double> heights;
2420 for (const ExtrusionPath& extrusion_path : extrusion_multi_path.paths) {
2421 Polyline polyline = extrusion_path.polyline.to_polyline();
2422 polyline.remove_duplicate_points();
2423 polyline.translate(copy);
2424 const Lines lines_this = polyline.lines();
2425 append(lines, lines_this);
2426 widths.insert(widths.end(), lines_this.size(), extrusion_path.width);
2427 heights.insert(heights.end(), lines_this.size(), extrusion_path.height);
2428 }
2429 thick_lines_to_verts(lines, widths, heights, false, print_z, geometry);
2430}

References Slic3r::append(), Slic3r::ExtrusionPath::height, Slic3r::Polyline::lines(), Slic3r::ExtrusionMultiPath::paths, Slic3r::ExtrusionPath::polyline, Slic3r::MultiPoint::remove_duplicate_points(), thick_lines_to_verts(), Slic3r::Polyline3::to_polyline(), Slic3r::MultiPoint::translate(), and Slic3r::ExtrusionPath::width.

Here is the call graph for this function:

◆ extrusionentity_to_verts() [5/5]

void Slic3r::_3DScene::extrusionentity_to_verts ( const ExtrusionPath & extrusion_path,
float print_z,
const Point & copy,
GUI::GLModel::Geometry & geometry )
static
2386{
2387 Polyline polyline = extrusion_path.polyline.to_polyline();
2388 polyline.remove_duplicate_points();
2389 polyline.translate(copy);
2390 const Lines lines = polyline.lines();
2391 std::vector<double> widths(lines.size(), extrusion_path.width);
2392 std::vector<double> heights(lines.size(), extrusion_path.height);
2393 thick_lines_to_verts(lines, widths, heights, false, print_z, geometry);
2394}

References Slic3r::ExtrusionPath::height, Slic3r::Polyline::lines(), Slic3r::ExtrusionPath::polyline, Slic3r::MultiPoint::remove_duplicate_points(), thick_lines_to_verts(), Slic3r::Polyline3::to_polyline(), Slic3r::MultiPoint::translate(), and Slic3r::ExtrusionPath::width.

Referenced by extrusionentity_to_verts(), extrusionentity_to_verts(), and Slic3r::GUI::GLGizmoFdmSupports::run_thread().

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

◆ thick_lines_to_verts() [1/2]

void Slic3r::_3DScene::thick_lines_to_verts ( const Lines & lines,
const std::vector< double > & widths,
const std::vector< double > & heights,
bool closed,
double top_z,
GUI::GLModel::Geometry & geometry )
static
2370{
2371 thick_lines_to_geometry(lines, widths, heights, closed, top_z, geometry);
2372}
static void thick_lines_to_geometry(const Lines &lines, const std::vector< double > &widths, const std::vector< double > &heights, bool closed, double top_z, GUI::GLModel::Geometry &geometry)
Definition 3DScene.cpp:1904

References Slic3r::thick_lines_to_geometry().

Referenced by extrusionentity_to_verts(), extrusionentity_to_verts(), and extrusionentity_to_verts().

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

◆ thick_lines_to_verts() [2/2]

void Slic3r::_3DScene::thick_lines_to_verts ( const Lines3 & lines,
const std::vector< double > & widths,
const std::vector< double > & heights,
bool closed,
GUI::GLModel::Geometry & geometry )
static
2380{
2381 thick_lines_to_geometry(lines, widths, heights, closed, geometry);
2382}

References Slic3r::thick_lines_to_geometry().

Here is the call graph for this function:

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