Fix of visual hints for rotation of full single instance selection
This commit is contained in:
parent
3cfb234e86
commit
ba89f04429
1 changed files with 17 additions and 1 deletions
|
@ -970,7 +970,23 @@ void Selection::render_sidebar_hints(const std::string& sidebar_field) const
|
||||||
::glTranslated(center(0), center(1), center(2));
|
::glTranslated(center(0), center(1), center(2));
|
||||||
if (!boost::starts_with(sidebar_field, "position"))
|
if (!boost::starts_with(sidebar_field, "position"))
|
||||||
{
|
{
|
||||||
Transform3d orient_matrix = (*m_volumes)[*m_list.begin()]->get_instance_transformation().get_matrix(true, false, true, true);
|
Transform3d orient_matrix = Transform3d::Identity();
|
||||||
|
if (boost::starts_with(sidebar_field, "scale"))
|
||||||
|
orient_matrix = (*m_volumes)[*m_list.begin()]->get_instance_transformation().get_matrix(true, false, true, true);
|
||||||
|
else if (boost::starts_with(sidebar_field, "rotation"))
|
||||||
|
{
|
||||||
|
if (boost::ends_with(sidebar_field, "x"))
|
||||||
|
orient_matrix = (*m_volumes)[*m_list.begin()]->get_instance_transformation().get_matrix(true, false, true, true);
|
||||||
|
else if (boost::ends_with(sidebar_field, "y"))
|
||||||
|
{
|
||||||
|
const Vec3d& rotation = (*m_volumes)[*m_list.begin()]->get_instance_transformation().get_rotation();
|
||||||
|
if (rotation(0) == 0.0)
|
||||||
|
orient_matrix = (*m_volumes)[*m_list.begin()]->get_instance_transformation().get_matrix(true, false, true, true);
|
||||||
|
else
|
||||||
|
orient_matrix.rotate(Eigen::AngleAxisd(rotation(2), Vec3d::UnitZ()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
::glMultMatrixd(orient_matrix.data());
|
::glMultMatrixd(orient_matrix.data());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue