mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-08-14 21:16:01 +08:00
Tech ENABLE_TRANSFORMATIONS_BY_MATRICES - Allow skew in matrices
Fixed conflicts during rebase with master
This commit is contained in:
parent
63c9ce23df
commit
b5d366d385
@ -1289,6 +1289,7 @@ void ObjectManipulation::set_uniform_scaling(const bool use_uniform_scale)
|
|||||||
const Selection &selection = wxGetApp().plater()->canvas3D()->get_selection();
|
const Selection &selection = wxGetApp().plater()->canvas3D()->get_selection();
|
||||||
#if ENABLE_WORLD_COORDINATE_SCALE_REVISITED
|
#if ENABLE_WORLD_COORDINATE_SCALE_REVISITED
|
||||||
if (!use_uniform_scale) {
|
if (!use_uniform_scale) {
|
||||||
|
#if !ENABLE_TRANSFORMATIONS_BY_MATRICES
|
||||||
int res = selection.bake_transform_if_needed();
|
int res = selection.bake_transform_if_needed();
|
||||||
if (res == -1) {
|
if (res == -1) {
|
||||||
// Enforce uniform scaling.
|
// Enforce uniform scaling.
|
||||||
@ -1296,6 +1297,7 @@ void ObjectManipulation::set_uniform_scaling(const bool use_uniform_scale)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (res == 0)
|
else if (res == 0)
|
||||||
|
#endif // !ENABLE_TRANSFORMATIONS_BY_MATRICES
|
||||||
// Recalculate cached values at this panel, refresh the screen.
|
// Recalculate cached values at this panel, refresh the screen.
|
||||||
this->UpdateAndShow(true);
|
this->UpdateAndShow(true);
|
||||||
}
|
}
|
||||||
|
@ -75,14 +75,36 @@ bool GLGizmoScale3D::on_mouse(const wxMouseEvent &mouse_event)
|
|||||||
{
|
{
|
||||||
if (mouse_event.Dragging()) {
|
if (mouse_event.Dragging()) {
|
||||||
if (m_dragging) {
|
if (m_dragging) {
|
||||||
|
#if !ENABLE_TRANSFORMATIONS_BY_MATRICES
|
||||||
|
#if ENABLE_WORLD_COORDINATE_SCALE_REVISITED
|
||||||
|
int res = 1;
|
||||||
|
if (m_scale.x() != m_scale.y() || m_scale.x() != m_scale.z())
|
||||||
|
res = m_parent.get_selection().bake_transform_if_needed();
|
||||||
|
|
||||||
|
if (res != 1) {
|
||||||
|
do_stop_dragging(true);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
#endif // ENABLE_WORLD_COORDINATE_SCALE_REVISITED
|
||||||
|
#endif // !ENABLE_TRANSFORMATIONS_BY_MATRICES
|
||||||
// Apply new temporary scale factors
|
// Apply new temporary scale factors
|
||||||
TransformationType transformation_type(TransformationType::Local_Absolute_Joint);
|
TransformationType transformation_type(TransformationType::Local_Absolute_Joint);
|
||||||
if (mouse_event.AltDown()) transformation_type.set_independent();
|
if (mouse_event.AltDown()) transformation_type.set_independent();
|
||||||
|
|
||||||
Selection &selection = m_parent.get_selection();
|
Selection &selection = m_parent.get_selection();
|
||||||
selection.scale(get_scale(), transformation_type);
|
selection.scale(m_scale, transformation_type);
|
||||||
if (mouse_event.CmdDown()) selection.translate(m_offset, ECoordinatesType::Local);
|
#if ENABLE_WORLD_COORDINATE
|
||||||
}
|
if (mouse_event.CmdDown()) selection.translate(m_offset, wxGetApp().obj_manipul()->get_coordinates_type());
|
||||||
|
#else
|
||||||
|
if (mouse_event.CmdDown()) selection.translate(m_offset, true);
|
||||||
|
#endif // ENABLE_WORLD_COORDINATE
|
||||||
|
#if !ENABLE_TRANSFORMATIONS_BY_MATRICES
|
||||||
|
#if ENABLE_WORLD_COORDINATE_SCALE_REVISITED
|
||||||
|
}
|
||||||
|
#endif // ENABLE_WORLD_COORDINATE_SCALE_REVISITED
|
||||||
|
#endif // !ENABLE_TRANSFORMATIONS_BY_MATRICES
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return use_grabbers(mouse_event);
|
return use_grabbers(mouse_event);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user