Fix a few spots where x and y were swapped in the X/Y rotation tool.

Originally committed to SVN as r4386.
This commit is contained in:
Thomas Goyne 2010-06-01 03:21:14 +00:00
parent 0fe2071082
commit 9e6454a798
1 changed files with 12 additions and 13 deletions

View File

@ -169,8 +169,8 @@ void VisualToolRotateXY::Draw() {
bool VisualToolRotateXY::InitializeHold() { bool VisualToolRotateXY::InitializeHold() {
GetLinePosition(curDiag,odx,ody,orgx,orgy); GetLinePosition(curDiag,odx,ody,orgx,orgy);
GetLineRotation(curDiag,origAngleX,origAngleY,rz); GetLineRotation(curDiag,origAngleX,origAngleY,rz);
startAngleX = (orgy-video.x)*2.0; startAngleX = (orgy-video.y)*2.f;
startAngleY = (video.y-orgx)*2.0; startAngleY = (video.x-orgx)*2.f;
curAngleX = origAngleX; curAngleX = origAngleX;
curAngleY = origAngleY; curAngleY = origAngleY;
curDiag->StripTag(L"\\frx"); curDiag->StripTag(L"\\frx");
@ -181,28 +181,27 @@ bool VisualToolRotateXY::InitializeHold() {
/// @brief Update hold /// @brief Update hold
void VisualToolRotateXY::UpdateHold() { void VisualToolRotateXY::UpdateHold() {
// Find screen angles float screenAngleX = (orgy-video.y)*2.f;
float screenAngleX = (orgy-video.x)*2.0; float screenAngleY = (video.x-orgx)*2.f;
float screenAngleY = (video.y-orgx)*2.0;
// Deltas // Deltas
float deltaX = screenAngleX - startAngleX; float deltaX = screenAngleX - startAngleX;
float deltaY = screenAngleY - startAngleY; float deltaY = screenAngleY - startAngleY;
if (shiftDown) { if (shiftDown) {
if (fabs(deltaX) >= fabs(deltaY)) deltaY = 0; if (fabs(deltaX) >= fabs(deltaY)) deltaY = 0.f;
else deltaX = 0; else deltaX = 0.f;
} }
// Calculate // Calculate
curAngleX = fmodf(deltaX + origAngleX + 360., 360.); curAngleX = fmodf(deltaX + origAngleX + 360.f, 360.f);
curAngleY = fmodf(deltaY + origAngleY + 360., 360.); curAngleY = fmodf(deltaY + origAngleY + 360.f, 360.f);
// Oh Snap // Oh Snap
if (ctrlDown) { if (ctrlDown) {
curAngleX = floorf(curAngleX/30.f+.5f)*30.0f; curAngleX = floorf(curAngleX/30.f+.5f)*30.f;
curAngleY = floorf(curAngleY/30.f+.5f)*30.0f; curAngleY = floorf(curAngleY/30.f+.5f)*30.f;
if (curAngleX > 359.0f) curAngleX = 0.0f; if (curAngleX > 359.f) curAngleX = 0.f;
if (curAngleY > 359.0f) curAngleY = 0.0f; if (curAngleY > 359.f) curAngleY = 0.f;
} }
} }