summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorleo2006-02-18 01:45:04 +0000
committerleo2006-02-18 01:45:04 +0000
commitd86d3bd7a9c80603937a5b401b0fd9601aaf1eb5 (patch)
tree91b0515ab45a4e077cc54e31799a97945c180ab0
parent238a0944a2e69ea191d8f0ad822d0728eb352c06 (diff)
Fixed a couple small snap glitches.
git-svn-id: http://svn.leocad.org/trunk@482 c7d43263-9d01-0410-8a33-9dba5d9f93d6
-rw-r--r--common/defines.h32
-rw-r--r--common/project.cpp30
2 files changed, 34 insertions, 28 deletions
diff --git a/common/defines.h b/common/defines.h
index 3db9215..c42b3a6 100644
--- a/common/defines.h
+++ b/common/defines.h
@@ -148,21 +148,23 @@ int stricmp(const char* str1, const char* str2);
#define LC_DET_BACKGROUND 0x08000 // Background rendering
//#define LC_DET_SCREENDOOR 0x10000 // No alpha blending
-#define LC_DRAW_AXIS 0x0001 // Orientation icon
-#define LC_DRAW_GRID 0x0002 // Grid
-#define LC_DRAW_SNAP_A 0x0004 // Snap Angle
-#define LC_DRAW_SNAP_X 0x0008 // Snap X
-#define LC_DRAW_SNAP_Y 0x0010 // Snap Y
-#define LC_DRAW_SNAP_Z 0x0020 // Snap Z
-//#define DRAW_COLLISION 0x0040
-#define LC_DRAW_MOVE 0x0080 // Switch to move after insert
-#define LC_DRAW_LOCK_X 0x0100 // Lock X
-#define LC_DRAW_LOCK_Y 0x0200 // Lock Y
-#define LC_DRAW_LOCK_Z 0x0400 // Lock Z
-#define LC_DRAW_MOVEAXIS 0x0800 // Move on fixed axis
-#define LC_DRAW_PREVIEW 0x1000 // Show piece position
-#define LC_DRAW_CM_UNITS 0x2000 // Use centimeters
-#define LC_DRAW_3DMOUSE 0x4000 // Mouse moves in all directions
+#define LC_DRAW_AXIS 0x0001 // Orientation icon
+#define LC_DRAW_GRID 0x0002 // Grid
+#define LC_DRAW_SNAP_A 0x0004 // Snap Angle
+#define LC_DRAW_SNAP_X 0x0008 // Snap X
+#define LC_DRAW_SNAP_Y 0x0010 // Snap Y
+#define LC_DRAW_SNAP_Z 0x0020 // Snap Z
+#define LC_DRAW_SNAP_XYZ (LC_DRAW_SNAP_X | LC_DRAW_SNAP_Y | LC_DRAW_SNAP_Z)
+//#define DRAW_COLLISION 0x0040
+#define LC_DRAW_MOVE 0x0080 // Switch to move after insert
+#define LC_DRAW_LOCK_X 0x0100 // Lock X
+#define LC_DRAW_LOCK_Y 0x0200 // Lock Y
+#define LC_DRAW_LOCK_Z 0x0400 // Lock Z
+#define LC_DRAW_LOCK_XYZ (LC_DRAW_LOCK_X | LC_DRAW_LOCK_Y | LC_DRAW_LOCK_Z)
+#define LC_DRAW_MOVEAXIS 0x0800 // Move on fixed axis
+#define LC_DRAW_PREVIEW 0x1000 // Show piece position
+#define LC_DRAW_CM_UNITS 0x2000 // Use centimeters
+#define LC_DRAW_3DMOUSE 0x4000 // Mouse moves in all directions
// #define RENDER_FAST 0x001
// #define RENDER_BACKGROUND 0x002
diff --git a/common/project.cpp b/common/project.cpp
index a86b0b3..763b056 100644
--- a/common/project.cpp
+++ b/common/project.cpp
@@ -318,7 +318,7 @@ void Project::LoadDefaults(bool cameras)
m_nAngleSnap = (unsigned short)Sys_ProfileLoadInt ("Default", "Angle", 30);
m_nSnap = Sys_ProfileLoadInt ("Default", "Snap", LC_DRAW_SNAP_A | LC_DRAW_SNAP_X | LC_DRAW_SNAP_Y | LC_DRAW_SNAP_Z | LC_DRAW_MOVE | LC_DRAW_PREVIEW);
SystemUpdateSnap(m_nSnap);
- m_nMoveSnap = 0x0605;
+ m_nMoveSnap = 0x0604;
SystemUpdateSnap(m_nMoveSnap, m_nAngleSnap);
m_fLineWidth = (float)Sys_ProfileLoadInt ("Default", "Line", 100)/100;
m_fFogDensity = (float)Sys_ProfileLoadInt ("Default", "Density", 10)/100;
@@ -5402,7 +5402,7 @@ void Project::HandleCommand(LC_COMMANDS id, unsigned long nParam)
if (pPiece->IsSelected())
pPiece->Hide();
UpdateSelection();
- messenger->Dispatch (LC_MSG_FOCUS_CHANGED, NULL);
+ messenger->Dispatch (LC_MSG_FOCUS_CHANGED, NULL);
UpdateAllViews();
} break;
@@ -5475,8 +5475,8 @@ void Project::HandleCommand(LC_COMMANDS id, unsigned long nParam)
redraw = true;
pPiece->SetFrameShow(t+1);
- if (pPiece->IsSelected () && t == m_nCurFrame)
- pPiece->Select (false, false, false);
+ if (pPiece->IsSelected () && t == m_nCurFrame)
+ pPiece->Select (false, false, false);
}
}
else
@@ -5484,11 +5484,11 @@ void Project::HandleCommand(LC_COMMANDS id, unsigned long nParam)
unsigned char t = pPiece->GetStepShow();
if (t < 255)
{
- redraw = true;
- pPiece->SetStepShow(t+1);
+ redraw = true;
+ pPiece->SetStepShow(t+1);
- if (pPiece->IsSelected () && t == m_nCurStep)
- pPiece->Select (false, false, false);
+ if (pPiece->IsSelected () && t == m_nCurStep)
+ pPiece->Select (false, false, false);
}
}
}
@@ -5498,7 +5498,7 @@ void Project::HandleCommand(LC_COMMANDS id, unsigned long nParam)
SetModifiedFlag(true);
CheckPoint("Modifying");
UpdateAllViews();
- UpdateSelection ();
+ UpdateSelection ();
}
} break;
@@ -5547,6 +5547,7 @@ void Project::HandleCommand(LC_COMMANDS id, unsigned long nParam)
strcpy(m_strFooter, opts.strFooter);
strcpy(m_strHeader, opts.strHeader);
SystemUpdateSnap(m_nSnap);
+ SystemUpdateSnap(m_nMoveSnap, m_nAngleSnap);
for (int i = 0; i < m_ViewList.GetSize (); i++)
{
@@ -5584,7 +5585,7 @@ void Project::HandleCommand(LC_COMMANDS id, unsigned long nParam)
case LC_VIEW_ZOOMEXTENTS:
{
- // FIXME: rewrite using the FustrumCull function
+ // FIXME: rewrite using the FustrumCull function
if (m_pPieces == 0) break;
bool bControl = Sys_KeyDown (KEY_CONTROL);
@@ -6066,10 +6067,13 @@ void Project::HandleCommand(LC_COMMANDS id, unsigned long nParam)
m_nSnap |= LC_DRAW_SNAP_Z;
break;
case 3:
- m_nSnap |= LC_DRAW_SNAP_X | LC_DRAW_SNAP_Y | LC_DRAW_SNAP_Z;
+ if ((m_nSnap & LC_DRAW_SNAP_XYZ) == LC_DRAW_SNAP_XYZ)
+ m_nSnap &= ~LC_DRAW_SNAP_XYZ;
+ else
+ m_nSnap |= LC_DRAW_SNAP_XYZ;
break;
case 4:
- m_nSnap &= ~(LC_DRAW_SNAP_X | LC_DRAW_SNAP_Y | LC_DRAW_SNAP_Z);
+ m_nSnap &= ~LC_DRAW_SNAP_XYZ;
break;
case 5:
if (m_nSnap & LC_DRAW_SNAP_A)
@@ -6104,7 +6108,7 @@ void Project::HandleCommand(LC_COMMANDS id, unsigned long nParam)
m_nSnap |= LC_DRAW_LOCK_Z;
break;
case 3:
- m_nSnap &= ~(LC_DRAW_LOCK_X|LC_DRAW_LOCK_Y|LC_DRAW_LOCK_Z);
+ m_nSnap &= ~LC_DRAW_LOCK_XYZ;
break;
case 4:
m_nSnap &= ~LC_DRAW_3DMOUSE;