OrcaSlicer/src/slic3r/GUI/MeshClipper.hpp
Lukas Matena 546917830b Initial implementation of MeshClipper class
So far the work is shared between the old code in GLGizmoSlaSupports.cpp and the new class
2019-09-13 12:03:53 +02:00

37 lines
823 B
C++

#ifndef slic3r_MeshClipper_hpp_
#define slic3r_MeshClipper_hpp_
#include "libslic3r/Point.hpp"
#include "slic3r/GUI/GLCanvas3D.hpp"
namespace Slic3r {
namespace GUI {
class MeshClipper {
public:
void set_plane(const ClippingPlane& plane);
void set_mesh(const TriangleMesh& mesh);
void set_transformation(const Geometry::Transformation& trafo);
const std::vector<Vec2f>& get_triangles();
private:
void recalculate_triangles();
std::pair<Vec3f, float> get_mesh_cut_normal() const;
Geometry::Transformation m_trafo;
const TriangleMesh* m_mesh = nullptr;
ClippingPlane m_plane;
std::vector<Vec2f> m_triangles;
bool m_triangles_valid = false;
std::unique_ptr<TriangleMeshSlicer> m_tms;
};
} // namespace GUI
} // namespace Slic3r
#endif // slic3r_MeshClipper_hpp_