OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
MeshBoolean.hpp File Reference
#include <Eigen/Core>
#include "libslic3r/Point.hpp"
#include <memory>
#include <exception>
#include <optional>
#include <utility>
#include <string>
#include <vector>
#include <libslic3r/TriangleMesh.hpp>
#include <Eigen/Geometry>
Include dependency graph for MeshBoolean.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Slic3r::MeshBoolean::cgal::CGALMeshDeleter
struct  Slic3r::MeshBoolean::mcut::McutMeshDeleter

Namespaces

namespace  Slic3r
 |/ Copyright (c) Prusa Research 2020 - 2023 Enrico Turri @enricoturri1966 |/ |/ PrusaSlicer is released under the terms of the AGPLv3 or higher |/
namespace  Slic3r::MeshBoolean
namespace  Slic3r::MeshBoolean::cgal
namespace  Slic3r::MeshBoolean::mcut

Typedefs

using Slic3r::MeshBoolean::EigenMesh = std::pair<Eigen::MatrixXd, Eigen::MatrixXi>
using Slic3r::MeshBoolean::cgal::CGALMeshPtr = std::unique_ptr<CGALMesh, CGALMeshDeleter>
using Slic3r::MeshBoolean::mcut::McutMeshPtr = std::unique_ptr<McutMesh, McutMeshDeleter>

Functions

TriangleMesh Slic3r::MeshBoolean::eigen_to_triangle_mesh (const EigenMesh &emesh)
EigenMesh Slic3r::MeshBoolean::triangle_mesh_to_eigen (const TriangleMesh &mesh)
void Slic3r::MeshBoolean::minus (EigenMesh &A, const EigenMesh &B)
void Slic3r::MeshBoolean::self_union (EigenMesh &A)
void Slic3r::MeshBoolean::minus (TriangleMesh &A, const TriangleMesh &B)
void Slic3r::MeshBoolean::self_union (TriangleMesh &mesh)
CGALMeshPtr Slic3r::MeshBoolean::cgal::clone (const CGALMesh &m)
void Slic3r::MeshBoolean::cgal::save_CGALMesh (const std::string &fname, const CGALMesh &cgal_mesh)
std::unique_ptr< CGALMesh, CGALMeshDeleter > Slic3r::MeshBoolean::cgal::triangle_mesh_to_cgal (const std::vector< stl_vertex > &V, const std::vector< stl_triangle_vertex_indices > &F)
CGALMeshPtr Slic3r::MeshBoolean::cgal::triangle_mesh_to_cgal (const indexed_triangle_set &M)
CGALMeshPtr Slic3r::MeshBoolean::cgal::triangle_mesh_to_cgal (const TriangleMesh &M)
TriangleMesh Slic3r::MeshBoolean::cgal::cgal_to_triangle_mesh (const CGALMesh &cgalmesh)
indexed_triangle_set Slic3r::MeshBoolean::cgal::cgal_to_indexed_triangle_set (const CGALMesh &cgalmesh)
void Slic3r::MeshBoolean::cgal::minus (TriangleMesh &A, const TriangleMesh &B)
void Slic3r::MeshBoolean::cgal::plus (TriangleMesh &A, const TriangleMesh &B)
void Slic3r::MeshBoolean::cgal::intersect (TriangleMesh &A, const TriangleMesh &B)
void Slic3r::MeshBoolean::cgal::minus (indexed_triangle_set &A, const indexed_triangle_set &B)
void Slic3r::MeshBoolean::cgal::plus (indexed_triangle_set &A, const indexed_triangle_set &B)
void Slic3r::MeshBoolean::cgal::intersect (indexed_triangle_set &A, const indexed_triangle_set &B)
void Slic3r::MeshBoolean::cgal::minus (CGALMesh &A, CGALMesh &B)
void Slic3r::MeshBoolean::cgal::plus (CGALMesh &A, CGALMesh &B)
void Slic3r::MeshBoolean::cgal::intersect (CGALMesh &A, CGALMesh &B)
bool Slic3r::MeshBoolean::cgal::does_self_intersect (const TriangleMesh &mesh)
bool Slic3r::MeshBoolean::cgal::does_self_intersect (const CGALMesh &mesh)
std::vector< TriangleMesh > Slic3r::MeshBoolean::cgal::segment (const TriangleMesh &src, double smoothing_alpha, int segment_number)
TriangleMesh Slic3r::MeshBoolean::cgal::merge (std::vector< TriangleMesh > meshes)
bool Slic3r::MeshBoolean::cgal::does_bound_a_volume (const CGALMesh &mesh)
bool Slic3r::MeshBoolean::cgal::empty (const CGALMesh &mesh)
std::optional< std::vector< Vec2f > > Slic3r::MeshBoolean::cgal::parameterize_lscm (const indexed_triangle_set &mesh)
indexed_triangle_set Slic3r::MeshBoolean::cgal::remesh_isotropic (const indexed_triangle_set &mesh, double target_edge_length, unsigned n_iterations, double sharp_angle_deg, unsigned n_relaxation_steps)
bool Slic3r::MeshBoolean::mcut::empty (const McutMesh &mesh)
McutMeshPtr Slic3r::MeshBoolean::mcut::triangle_mesh_to_mcut (const indexed_triangle_set &M)
TriangleMesh Slic3r::MeshBoolean::mcut::mcut_to_triangle_mesh (const McutMesh &mcutmesh)
bool Slic3r::MeshBoolean::mcut::do_boolean_single (McutMesh &srcMesh, const McutMesh &cutMesh, const std::string &boolean_opts)
void Slic3r::MeshBoolean::mcut::do_boolean (McutMesh &srcMesh, const McutMesh &cutMesh, const std::string &boolean_opts)
void Slic3r::MeshBoolean::mcut::make_boolean (const TriangleMesh &src_mesh, const TriangleMesh &cut_mesh, std::vector< TriangleMesh > &dst_mesh, const std::string &boolean_opts)