145{
147 const Model&
model = GUI::wxGetApp().plater()->model();
148
150 const BoundingBoxf3& box =
m_parent.transformed_convex_hull_bounding_box();
154
156
158 GUI::GLModel::Geometry init_data;
161 unsigned int vertices_counter = 0;
162 MeshSlicingParams slicing_params;
163 slicing_params.trafo =
m_parent.world_matrix();
167 init_data.reserve_vertices(init_data.vertices_count() + triangulation.size());
168 init_data.reserve_indices(init_data.indices_count() + triangulation.size());
169 for (
const Vec3d& v : triangulation) {
170 init_data.add_vertex((
Vec3f)(v.cast<
float>() + 0.015f * Vec3f::UnitZ()));
171 ++vertices_counter;
172 if (vertices_counter % 3 == 0)
173 init_data.add_triangle(vertices_counter - 3, vertices_counter - 2, vertices_counter - 1);
174 }
175 }
176 m_model.init_from(std::move(init_data));
177 }
178 else
180 }
181 else
183}
static const ColorRGBA WHITE()
Definition Color.hpp:142
BoundingBoxf3 m_old_box
Definition 3DScene.hpp:155
static const float HalfWidth
Definition 3DScene.hpp:152
GUI::GLModel model
Definition 3DScene.hpp:250
int object_idx() const
Definition 3DScene.hpp:344
#define scale_(val)
Definition libslic3r.h:106
Slic3r::Polygons union_(const Slic3r::Polygons &subject)
Definition ClipperUtils.cpp:801
Eigen::Matrix< double, 3, 1, Eigen::DontAlign > Vec3d
Definition Point.hpp:68
Slic3r::ExPolygons diff_ex(const Slic3r::Polygons &subject, const Slic3r::Polygons &clip, ApplySafetyOffset do_safety_offset)
Definition ClipperUtils.cpp:831
Slic3r::Polygons expand(const Slic3r::Polygon &polygon, const float delta, JoinType joinType=DefaultJoinType, double miterLimit=DefaultMiterLimit)
Definition ClipperUtils.hpp:397
Eigen::Matrix< float, 3, 1, Eigen::DontAlign > Vec3f
Definition Point.hpp:65
std::vector< Polygon, PointsAllocator< Polygon > > Polygons
Definition Polygon.hpp:22
std::vector< Vec3d > triangulate_expolygon_3d(const ExPolygon &poly, coordf_t z, bool flip)
Definition Tesselate.cpp:204
Slic3r::Polygons shrink(const Slic3r::Polygons &polygons, const float delta, JoinType joinType=DefaultJoinType, double miterLimit=DefaultMiterLimit)
Definition ClipperUtils.hpp:406
std::vector< Polygons > slice_mesh(const indexed_triangle_set &mesh, const std::vector< float > &zs, const MeshSlicingParams ¶ms, std::function< void()> throw_on_cancel)
Definition TriangleMeshSlicer.cpp:1997
@ P3
Definition GLModel.hpp:44
@ Triangles
Definition GLModel.hpp:32