mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-25 07:34:03 -06:00
Revert "Fixed volume transformations in SLA:":
The fix is not complete, it is better not to break it more than it was.
This reverts commit 6b25a9c836
.
This commit is contained in:
parent
6b25a9c836
commit
6a5feb818f
4 changed files with 31 additions and 68 deletions
|
@ -35,24 +35,11 @@ inline void reproject_points_and_holes(ModelObject *object)
|
|||
TriangleMesh rmsh = object->raw_mesh();
|
||||
IndexedMesh emesh{rmsh};
|
||||
|
||||
const Transform3f& tr = object->volumes.front()->get_matrix().cast<float>();
|
||||
if (has_sppoints)
|
||||
reproject_support_points(emesh, object->sla_support_points);
|
||||
|
||||
if (has_sppoints) {
|
||||
SupportPoints transformed_points = object->sla_support_points;
|
||||
for (SupportPoint& pt : transformed_points)
|
||||
pt.pos = tr * pt.pos;
|
||||
reproject_support_points(emesh, transformed_points);
|
||||
}
|
||||
|
||||
if (has_holes) {
|
||||
DrainHoles transformed_holes = object->sla_drain_holes;
|
||||
for (DrainHole& hole : transformed_holes) {
|
||||
// Hole normals are not transformed here, but the reprojection
|
||||
// does not use them.
|
||||
hole.pos = tr * hole.pos;
|
||||
}
|
||||
reproject_support_points(emesh, transformed_holes);
|
||||
}
|
||||
if (has_holes)
|
||||
reproject_support_points(emesh, object->sla_drain_holes);
|
||||
}
|
||||
|
||||
}}
|
||||
|
|
|
@ -1167,9 +1167,7 @@ sla::SupportPoints SLAPrintObject::transformed_support_points() const
|
|||
{
|
||||
assert(m_model_object != nullptr);
|
||||
auto spts = m_model_object->sla_support_points;
|
||||
|
||||
auto tr = (trafo() * m_model_object->volumes.front()->get_transformation().get_matrix()).cast<float>();
|
||||
|
||||
auto tr = trafo().cast<float>();
|
||||
for (sla::SupportPoint& suppt : spts) {
|
||||
suppt.pos = tr * suppt.pos;
|
||||
}
|
||||
|
@ -1181,8 +1179,8 @@ sla::DrainHoles SLAPrintObject::transformed_drainhole_points() const
|
|||
{
|
||||
assert(m_model_object != nullptr);
|
||||
auto pts = m_model_object->sla_drain_holes;
|
||||
Transform3f tr = (trafo() * m_model_object->volumes.front()->get_matrix()).cast<float>();
|
||||
Vec3f sc = Geometry::Transformation(tr.cast<double>()).get_scaling_factor().cast<float>();
|
||||
auto tr = trafo().cast<float>();
|
||||
auto sc = m_model_object->instances.front()->get_scaling_factor().cast<float>();
|
||||
for (sla::DrainHole &hl : pts) {
|
||||
hl.pos = tr * hl.pos;
|
||||
hl.normal = tr * hl.normal - tr.translation();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue