SLA backend refactored, except Hollowing

This commit is contained in:
tamasmeszaros 2021-05-21 14:08:05 +02:00
parent 1c35dfe591
commit 1009f78862
22 changed files with 687 additions and 404 deletions

View file

@ -154,14 +154,14 @@ InteriorPtr generate_interior(const TriangleMesh & mesh,
return interior;
}
Contour3D DrainHole::to_mesh() const
indexed_triangle_set DrainHole::to_mesh() const
{
auto r = double(radius);
auto h = double(height);
sla::Contour3D hole = sla::cylinder(r, h, steps);
Eigen::Quaterniond q;
q.setFromTwoVectors(Vec3d{0., 0., 1.}, normal.cast<double>());
for(auto& p : hole.points) p = q * p + pos.cast<double>();
indexed_triangle_set hole = sla::cylinder(r, h, steps);
Eigen::Quaternionf q;
q.setFromTwoVectors(Vec3f{0.f, 0.f, 1.f}, normal);
for(auto& p : hole.vertices) p = q * p + pos;
return hole;
}
@ -292,7 +292,7 @@ void cut_drainholes(std::vector<ExPolygons> & obj_slices,
{
TriangleMesh mesh;
for (const sla::DrainHole &holept : holes)
mesh.merge(sla::to_triangle_mesh(holept.to_mesh()));
mesh.merge(TriangleMesh{holept.to_mesh()});
if (mesh.empty()) return;