fix: Redefine angle dimension quadrant snapping
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
This commit is contained in:
@@ -250,14 +250,14 @@ void ViewportWidget::paintGL()
|
|||||||
while (relativeMouseAngle > 180.0) relativeMouseAngle -= 360.0;
|
while (relativeMouseAngle > 180.0) relativeMouseAngle -= 360.0;
|
||||||
|
|
||||||
double snappedAngle = 0;
|
double snappedAngle = 0;
|
||||||
if (relativeMouseAngle >= -45 && relativeMouseAngle < 45) {
|
if (relativeMouseAngle >= 0 && relativeMouseAngle < 90) { // Quadrant 1
|
||||||
snappedAngle = inputAngleDegrees;
|
snappedAngle = inputAngleDegrees;
|
||||||
} else if (relativeMouseAngle >= 45 && relativeMouseAngle < 135) {
|
} else if (relativeMouseAngle >= 90 && relativeMouseAngle <= 180) { // Quadrant 2
|
||||||
snappedAngle = 180 - inputAngleDegrees;
|
snappedAngle = 180.0 - inputAngleDegrees;
|
||||||
} else if (relativeMouseAngle >= 135 || relativeMouseAngle < -135) {
|
} else if (relativeMouseAngle < -90) { // Quadrant 3
|
||||||
snappedAngle = inputAngleDegrees + 180.0;
|
snappedAngle = -180.0 + inputAngleDegrees;
|
||||||
} else { // -135 to -45
|
} else { // Quadrant 4
|
||||||
snappedAngle = 360 - inputAngleDegrees;
|
snappedAngle = -inputAngleDegrees;
|
||||||
}
|
}
|
||||||
|
|
||||||
double finalAngleRad = qDegreesToRadians(refAngle + snappedAngle);
|
double finalAngleRad = qDegreesToRadians(refAngle + snappedAngle);
|
||||||
@@ -803,10 +803,15 @@ void ViewportWidget::mousePressEvent(QMouseEvent *event)
|
|||||||
while (relativeMouseAngle <= -180.0) relativeMouseAngle += 360.0;
|
while (relativeMouseAngle <= -180.0) relativeMouseAngle += 360.0;
|
||||||
while (relativeMouseAngle > 180.0) relativeMouseAngle -= 360.0;
|
while (relativeMouseAngle > 180.0) relativeMouseAngle -= 360.0;
|
||||||
double snappedAngle = 0;
|
double snappedAngle = 0;
|
||||||
if (relativeMouseAngle >= -45 && relativeMouseAngle < 45) snappedAngle = inputAngleDegrees;
|
if (relativeMouseAngle >= 0 && relativeMouseAngle < 90) { // Quadrant 1
|
||||||
else if (relativeMouseAngle >= 45 && relativeMouseAngle < 135) snappedAngle = 180 - inputAngleDegrees;
|
snappedAngle = inputAngleDegrees;
|
||||||
else if (relativeMouseAngle >= 135 || relativeMouseAngle < -135) snappedAngle = inputAngleDegrees + 180.0;
|
} else if (relativeMouseAngle >= 90 && relativeMouseAngle <= 180) { // Quadrant 2
|
||||||
else snappedAngle = 360 - inputAngleDegrees;
|
snappedAngle = 180.0 - inputAngleDegrees;
|
||||||
|
} else if (relativeMouseAngle < -90) { // Quadrant 3
|
||||||
|
snappedAngle = -180.0 + inputAngleDegrees;
|
||||||
|
} else { // Quadrant 4
|
||||||
|
snappedAngle = -inputAngleDegrees;
|
||||||
|
}
|
||||||
double finalAngleRad = qDegreesToRadians(refAngle + snappedAngle);
|
double finalAngleRad = qDegreesToRadians(refAngle + snappedAngle);
|
||||||
QVector3D finalDir;
|
QVector3D finalDir;
|
||||||
if (m_currentPlane == SketchPlane::XY) finalDir = QVector3D(cos(finalAngleRad), 0, sin(finalAngleRad));
|
if (m_currentPlane == SketchPlane::XY) finalDir = QVector3D(cos(finalAngleRad), 0, sin(finalAngleRad));
|
||||||
@@ -1089,10 +1094,15 @@ void ViewportWidget::keyPressEvent(QKeyEvent *event)
|
|||||||
while (relativeMouseAngle <= -180.0) relativeMouseAngle += 360.0;
|
while (relativeMouseAngle <= -180.0) relativeMouseAngle += 360.0;
|
||||||
while (relativeMouseAngle > 180.0) relativeMouseAngle -= 360.0;
|
while (relativeMouseAngle > 180.0) relativeMouseAngle -= 360.0;
|
||||||
double snappedAngle = 0;
|
double snappedAngle = 0;
|
||||||
if (relativeMouseAngle >= -45 && relativeMouseAngle < 45) snappedAngle = inputAngleDegrees;
|
if (relativeMouseAngle >= 0 && relativeMouseAngle < 90) { // Quadrant 1
|
||||||
else if (relativeMouseAngle >= 45 && relativeMouseAngle < 135) snappedAngle = 180 - inputAngleDegrees;
|
snappedAngle = inputAngleDegrees;
|
||||||
else if (relativeMouseAngle >= 135 || relativeMouseAngle < -135) snappedAngle = inputAngleDegrees + 180.0;
|
} else if (relativeMouseAngle >= 90 && relativeMouseAngle <= 180) { // Quadrant 2
|
||||||
else snappedAngle = 360 - inputAngleDegrees;
|
snappedAngle = 180.0 - inputAngleDegrees;
|
||||||
|
} else if (relativeMouseAngle < -90) { // Quadrant 3
|
||||||
|
snappedAngle = -180.0 + inputAngleDegrees;
|
||||||
|
} else { // Quadrant 4
|
||||||
|
snappedAngle = -inputAngleDegrees;
|
||||||
|
}
|
||||||
double finalAngleRad = qDegreesToRadians(refAngle + snappedAngle);
|
double finalAngleRad = qDegreesToRadians(refAngle + snappedAngle);
|
||||||
QVector3D finalDir;
|
QVector3D finalDir;
|
||||||
if (m_currentPlane == SketchPlane::XY) finalDir = QVector3D(cos(finalAngleRad), 0, sin(finalAngleRad));
|
if (m_currentPlane == SketchPlane::XY) finalDir = QVector3D(cos(finalAngleRad), 0, sin(finalAngleRad));
|
||||||
|
|||||||
Reference in New Issue
Block a user