diff --git a/radiantcore/selection/manipulators/RotateManipulator.cpp b/radiantcore/selection/manipulators/RotateManipulator.cpp index ad986ed778..b60fe6916a 100644 --- a/radiantcore/selection/manipulators/RotateManipulator.cpp +++ b/radiantcore/selection/manipulators/RotateManipulator.cpp @@ -93,37 +93,46 @@ void RotateManipulator::UpdateColours() void RotateManipulator::updateCircleTransforms() { Vector3 localViewpoint( - _pivot2World._worldSpace.getTransposed().transformDirection(_pivot2World._viewpointSpace.zCol3()) - ); + _pivot2World._worldSpace.getTransposed().transformDirection( + _pivot2World._viewpointSpace.zCol3())); _circleX_visible = !math::isNear(g_vector3_axis_x, localViewpoint, 1e-6); - if(_circleX_visible) + if (_circleX_visible) { - _local2worldX = Matrix4::getIdentity(); - _local2worldX.yCol3Ref() = g_vector3_axis_x.cross(localViewpoint).getNormalised(); - _local2worldX.zCol3Ref() = _local2worldX.xCol3().cross( - _local2worldX.yCol3()).getNormalised(); - _local2worldX.premultiplyBy(_pivot2World._worldSpace); + _local2worldX = Matrix4::getIdentity(); + _local2worldX.setYCol( + g_vector3_axis_x.cross(localViewpoint).getNormalised() + ); + _local2worldX.setZCol( + _local2worldX.xCol3().cross(_local2worldX.yCol3()).getNormalised() + ); + _local2worldX.premultiplyBy(_pivot2World._worldSpace); } - _circleY_visible = !math::isNear(g_vector3_axis_y, localViewpoint, 1e-6); - if(_circleY_visible) + _circleY_visible = !math::isNear(g_vector3_axis_y, localViewpoint, 1e-6); + if (_circleY_visible) { - _local2worldY = Matrix4::getIdentity(); - _local2worldY.zCol3Ref() = g_vector3_axis_y.cross(localViewpoint).getNormalised(); - _local2worldY.xCol3Ref() = _local2worldY.yCol3().cross( - _local2worldY.zCol3()).getNormalised(); - _local2worldY.premultiplyBy(_pivot2World._worldSpace); + _local2worldY = Matrix4::getIdentity(); + _local2worldY.setZCol( + g_vector3_axis_y.cross(localViewpoint).getNormalised() + ); + _local2worldY.setXCol( + _local2worldY.yCol3().cross(_local2worldY.zCol3()).getNormalised() + ); + _local2worldY.premultiplyBy(_pivot2World._worldSpace); } - _circleZ_visible = !math::isNear(g_vector3_axis_z, localViewpoint, 1e-6); - if(_circleZ_visible) + _circleZ_visible = !math::isNear(g_vector3_axis_z, localViewpoint, 1e-6); + if (_circleZ_visible) { - _local2worldZ = Matrix4::getIdentity(); - _local2worldZ.xCol3Ref() = g_vector3_axis_z.cross(localViewpoint).getNormalised(); - _local2worldZ.yCol3Ref() = _local2worldZ.zCol3().cross( - _local2worldZ.xCol3()).getNormalised(); - _local2worldZ.premultiplyBy(_pivot2World._worldSpace); + _local2worldZ = Matrix4::getIdentity(); + _local2worldZ.setXCol( + g_vector3_axis_z.cross(localViewpoint).getNormalised() + ); + _local2worldZ.setYCol( + _local2worldZ.zCol3().cross(_local2worldZ.xCol3()).getNormalised() + ); + _local2worldZ.premultiplyBy(_pivot2World._worldSpace); } }