mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-08-14 16:45:53 +08:00
Methods Transformation::get_scaling_factor() and Transformation::get_scaling_factor_matrix() modified to use TransformationSVD
This commit is contained in:
parent
b182675e35
commit
d6693ea956
@ -539,17 +539,14 @@ void Transformation::set_rotation(Axis axis, double rotation)
|
|||||||
#if ENABLE_WORLD_COORDINATE
|
#if ENABLE_WORLD_COORDINATE
|
||||||
Vec3d Transformation::get_scaling_factor() const
|
Vec3d Transformation::get_scaling_factor() const
|
||||||
{
|
{
|
||||||
const Transform3d scale = extract_scale(m_matrix);
|
const TransformationSVD svd(*this);
|
||||||
return { std::abs(scale(0, 0)), std::abs(scale(1, 1)), std::abs(scale(2, 2)) };
|
return { svd.s(0, 0), svd.s(1, 1), svd.s(2, 2) };
|
||||||
}
|
}
|
||||||
|
|
||||||
Transform3d Transformation::get_scaling_factor_matrix() const
|
Transform3d Transformation::get_scaling_factor_matrix() const
|
||||||
{
|
{
|
||||||
Transform3d scale = extract_scale(m_matrix);
|
const TransformationSVD svd(*this);
|
||||||
scale(0, 0) = std::abs(scale(0, 0));
|
return Transform3d(svd.s);
|
||||||
scale(1, 1) = std::abs(scale(1, 1));
|
|
||||||
scale(2, 2) = std::abs(scale(2, 2));
|
|
||||||
return scale;
|
|
||||||
}
|
}
|
||||||
#endif // ENABLE_WORLD_COORDINATE
|
#endif // ENABLE_WORLD_COORDINATE
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user