Flip on viewer center (#2564)

* Add Reset Rotation option

* Switch ZoomReset to ViewReset

* Add Reset Zoom option

* Add flip viewer options to context menu

* Enable visualization buttons on command bar

* Fix reset Rotate on Camera Center

* Add Reset Position option

* Add tool option bar reset buttons

* Flip on viewer center
This commit is contained in:
manongjohn 2019-06-20 00:54:14 -04:00 committed by Jeremy Bullock
parent c96e497d75
commit c96b4c870a

View file

@ -2056,8 +2056,18 @@ void SceneViewer::zoom(const TPointD &center, double factor) {
//-----------------------------------------------------------------------------
void SceneViewer::flipX() {
m_viewAff[0] = m_viewAff[0] * TScale(-1, 1);
m_viewAff[1] = m_viewAff[1] * TScale(-1, 1);
double flipAngle0 = (m_rotationAngle[0] * -1) * 2;
double flipAngle1 = (m_rotationAngle[1] * -1) * 2;
m_rotationAngle[0] += flipAngle0;
m_rotationAngle[1] += flipAngle1;
if (m_isFlippedX != m_isFlippedY) {
flipAngle0 = -flipAngle0;
flipAngle1 = -flipAngle1;
}
m_viewAff[0] = m_viewAff[0] * TRotation(flipAngle0) * TScale(-1, 1);
m_viewAff[1] = m_viewAff[1] * TRotation(flipAngle1) * TScale(-1, 1);
m_viewAff[0].a13 *= -1;
m_viewAff[1].a13 *= -1;
m_isFlippedX = !m_isFlippedX;
invalidateAll();
emit onZoomChanged();
@ -2066,8 +2076,18 @@ void SceneViewer::flipX() {
//-----------------------------------------------------------------------------
void SceneViewer::flipY() {
m_viewAff[0] = m_viewAff[0] * TScale(1, -1);
m_viewAff[1] = m_viewAff[1] * TScale(1, -1);
double flipAngle0 = (m_rotationAngle[0] * -1) * 2;
double flipAngle1 = (m_rotationAngle[1] * -1) * 2;
m_rotationAngle[0] += flipAngle0;
m_rotationAngle[1] += flipAngle1;
if (m_isFlippedX != m_isFlippedY) {
flipAngle0 = -flipAngle0;
flipAngle1 = -flipAngle1;
}
m_viewAff[0] = m_viewAff[0] * TRotation(flipAngle0) * TScale(1, -1);
m_viewAff[1] = m_viewAff[1] * TRotation(flipAngle1) * TScale(1, -1);
m_viewAff[0].a23 *= -1;
m_viewAff[1].a23 *= -1;
m_isFlippedY = !m_isFlippedY;
invalidateAll();
emit onZoomChanged();