diff --git a/src/Camera.cpp b/src/Camera.cpp index 04705b5..898c4d7 100644 --- a/src/Camera.cpp +++ b/src/Camera.cpp @@ -98,6 +98,8 @@ QMatrix4x4 Camera::modelViewMatrix() const if (m_isRotating) { model.translate(-m_rotationPivot); } + + model.rotate(-90.0f, 1, 0, 0); // For Z-up system return model; } diff --git a/src/ViewportWidget.cpp b/src/ViewportWidget.cpp index 0774467..30462cc 100644 --- a/src/ViewportWidget.cpp +++ b/src/ViewportWidget.cpp @@ -489,8 +489,8 @@ QVector3D ViewportWidget::unproject(const QPoint& screenPos, SketchPlane plane) QVector3D planeNormal; switch (plane) { - case SketchPlane::XY: planeNormal = QVector3D(0, 1, 0); break; - case SketchPlane::XZ: planeNormal = QVector3D(0, 0, 1); break; + case SketchPlane::XY: planeNormal = QVector3D(0, 0, 1); break; + case SketchPlane::XZ: planeNormal = QVector3D(0, 1, 0); break; case SketchPlane::YZ: planeNormal = QVector3D(1, 0, 0); break; case SketchPlane::NONE: return QVector3D(); } @@ -532,15 +532,15 @@ void ViewportWidget::drawSketch(const SketchFeature* sketch) const int numSegments = 64; QVector3D u_axis, v_axis; switch (sketch->plane()) { - case SketchFeature::SketchPlane::XY: - u_axis = QVector3D(1, 0, 0); - v_axis = QVector3D(0, 0, 1); - break; - case SketchFeature::SketchPlane::XZ: + case SketchFeature::SketchPlane::XY: // Top u_axis = QVector3D(1, 0, 0); v_axis = QVector3D(0, 1, 0); break; - case SketchFeature::SketchPlane::YZ: + case SketchFeature::SketchPlane::XZ: // Front + u_axis = QVector3D(1, 0, 0); + v_axis = QVector3D(0, 0, 1); + break; + case SketchFeature::SketchPlane::YZ: // Right u_axis = QVector3D(0, 1, 0); v_axis = QVector3D(0, 0, 1); break; @@ -564,10 +564,10 @@ void ViewportWidget::drawSketch(const SketchFeature* sketch) gp_Pnt p2, p4; if (sketch->plane() == SketchFeature::SketchPlane::XY) { p2.SetCoord(p3.X(), p1.Y(), p1.Z()); - p4.SetCoord(p1.X(), p1.Y(), p3.Z()); + p4.SetCoord(p1.X(), p3.Y(), p1.Z()); } else if (sketch->plane() == SketchFeature::SketchPlane::XZ) { p2.SetCoord(p3.X(), p1.Y(), p1.Z()); - p4.SetCoord(p1.X(), p3.Y(), p1.Z()); + p4.SetCoord(p1.X(), p1.Y(), p3.Z()); } else if (sketch->plane() == SketchFeature::SketchPlane::YZ) { p2.SetCoord(p1.X(), p3.Y(), p1.Z()); p4.SetCoord(p1.X(), p1.Y(), p3.Z());