Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
Slic3r::_3DScene Struct Reference

#include <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
1493{
1494 if (extrusion_entity != nullptr) {
1495 auto* extrusion_path = dynamic_cast<const ExtrusionPath*>(extrusion_entity);
1496 if (extrusion_path != nullptr)
1497 extrusionentity_to_verts(*extrusion_path, print_z, copy, geometry);
1498 else {
1499 auto* extrusion_loop = dynamic_cast<const ExtrusionLoop*>(extrusion_entity);
1500 if (extrusion_loop != nullptr)
1501 extrusionentity_to_verts(*extrusion_loop, print_z, copy, geometry);
1502 else {
1503 auto* extrusion_multi_path = dynamic_cast<const ExtrusionMultiPath*>(extrusion_entity);
1504 if (extrusion_multi_path != nullptr)
1505 extrusionentity_to_verts(*extrusion_multi_path, print_z, copy, geometry);
1506 else {
1507 auto* extrusion_entity_collection = dynamic_cast<const ExtrusionEntityCollection*>(extrusion_entity);
1508 if (extrusion_entity_collection != nullptr)
1509 extrusionentity_to_verts(*extrusion_entity_collection, print_z, copy, geometry);
1510 else
1511 throw Slic3r::RuntimeError("Unexpected extrusion_entity type in to_verts()");
1512 }
1513 }
1514 }
1515 }
1516}
static void extrusionentity_to_verts(const ExtrusionPath &extrusion_path, float print_z, const Point &copy, GUI::GLModel::Geometry &geometry)
Definition 3DScene.cpp:1439

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
1487{
1488 for (const ExtrusionEntity* extrusion_entity : extrusion_entity_collection.entities)
1489 extrusionentity_to_verts(extrusion_entity, print_z, copy, geometry);
1490}

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
1452{
1453 Lines lines;
1454 std::vector<double> widths;
1455 std::vector<double> heights;
1456 for (const ExtrusionPath& extrusion_path : extrusion_loop.paths) {
1457 Polyline polyline = extrusion_path.polyline;
1458 polyline.remove_duplicate_points();
1459 polyline.translate(copy);
1460 const Lines lines_this = polyline.lines();
1461 append(lines, lines_this);
1462 widths.insert(widths.end(), lines_this.size(), extrusion_path.width);
1463 heights.insert(heights.end(), lines_this.size(), extrusion_path.height);
1464 }
1465 thick_lines_to_verts(lines, widths, heights, true, print_z, geometry);
1466}
std::vector< Line > Lines
Definition Line.hpp:17
void append(std::vector< T, Alloc > &dest, const std::vector< T, Alloc2 > &src)
Definition libslic3r.h:110
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:1417

References Slic3r::append(), Slic3r::Polyline::lines(), Slic3r::ExtrusionLoop::paths, Slic3r::MultiPoint::remove_duplicate_points(), thick_lines_to_verts(), and Slic3r::MultiPoint::translate().

+ 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
1470{
1471 Lines lines;
1472 std::vector<double> widths;
1473 std::vector<double> heights;
1474 for (const ExtrusionPath& extrusion_path : extrusion_multi_path.paths) {
1475 Polyline polyline = extrusion_path.polyline;
1476 polyline.remove_duplicate_points();
1477 polyline.translate(copy);
1478 const Lines lines_this = polyline.lines();
1479 append(lines, lines_this);
1480 widths.insert(widths.end(), lines_this.size(), extrusion_path.width);
1481 heights.insert(heights.end(), lines_this.size(), extrusion_path.height);
1482 }
1483 thick_lines_to_verts(lines, widths, heights, false, print_z, geometry);
1484}

References Slic3r::append(), Slic3r::Polyline::lines(), Slic3r::ExtrusionMultiPath::paths, Slic3r::MultiPoint::remove_duplicate_points(), thick_lines_to_verts(), and Slic3r::MultiPoint::translate().

+ 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
1440{
1441 Polyline polyline = extrusion_path.polyline;
1442 polyline.remove_duplicate_points();
1443 polyline.translate(copy);
1444 const Lines lines = polyline.lines();
1445 std::vector<double> widths(lines.size(), extrusion_path.width);
1446 std::vector<double> heights(lines.size(), extrusion_path.height);
1447 thick_lines_to_verts(lines, widths, heights, false, print_z, geometry);
1448}

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

Referenced by Slic3r::GUI::GLCanvas3D::_load_print_object_toolpaths(), Slic3r::GUI::GLCanvas3D::_load_print_toolpaths(), 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() [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
1424{
1425 thick_lines_to_geometry(lines, widths, heights, closed, top_z, geometry);
1426}
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:951

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
1434{
1435 thick_lines_to_geometry(lines, widths, heights, closed, geometry);
1436}

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: