]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/matrix.cpp
getting rid of redundant redraws
[wxWidgets.git] / src / common / matrix.cpp
index a19d8ea477c0f1a8b7a43152574fb5958a9534ce..d324a852dd0dc696d1fc2f836616743894b0d884 100644 (file)
@@ -1,14 +1,15 @@
+///////////////////////////////////////////////////////////////////////////////
 // Name:        matrix.cpp
 // Purpose:     wxTransformMatrix class
 // Author:      Chris Breeze, Julian Smart
 // Modified by: Klaas Holwerda
 // Created:     01/02/97
 // RCS-ID:      $Id$
-// Copyright:   (c) Julian Smart and Markus Holzem
+// Copyright:   (c) Julian Smart
 // Licence:     wxWindows licence
-/////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
 #pragma implementation "matrix.h"
 #endif
 
 
 #ifndef WX_PRECOMP
 #include "wx/defs.h"
+#include "wx/math.h"
 #endif
 
 #include "wx/matrix.h"
-#include <math.h>
 
-#if ! (defined(__WXMAC__) && defined(__UNIX__))
-const double pi = 3.1415926535;
-#endif
+static const double pi = M_PI;
 
 wxTransformMatrix::wxTransformMatrix(void)
 {
-    m_isIdentity = FALSE;
+    m_isIdentity = false;
 
     Identity();
 }
 
 wxTransformMatrix::wxTransformMatrix(const wxTransformMatrix& mat)
+    : wxObject()
 {
     (*this) = mat;
 }
@@ -77,8 +77,8 @@ void wxTransformMatrix::operator = (const wxTransformMatrix& mat)
 
 bool wxTransformMatrix::operator == (const wxTransformMatrix& mat)
 {
-    if (m_isIdentity==TRUE && mat.m_isIdentity==TRUE)
-        return TRUE;
+    if (m_isIdentity==true && mat.m_isIdentity==true)
+        return true;
 
     int i, j;
     for (i = 0; i < 3; i++)
@@ -86,10 +86,10 @@ bool wxTransformMatrix::operator == (const wxTransformMatrix& mat)
         for (j = 0; j < 3; j++)
         {
             if (m_matrix[i][j] != mat.m_matrix[i][j])
-                return FALSE;
+                return false;
         }
     }
-    return TRUE;
+    return true;
 }
 
 bool wxTransformMatrix::operator != (const wxTransformMatrix& mat)
@@ -148,11 +148,11 @@ bool wxTransformMatrix::Invert(void)
             }
         }
         m_isIdentity = IsIdentity1();
-        return TRUE;
+        return true;
     }
     else
     {
-        return FALSE;
+        return false;
     }
 }
 
@@ -161,9 +161,9 @@ bool wxTransformMatrix::Identity(void)
 {
     m_matrix[0][0] = m_matrix[1][1] = m_matrix[2][2] = 1.0;
     m_matrix[1][0] = m_matrix[2][0] = m_matrix[0][1] = m_matrix[2][1] = m_matrix[0][2] = m_matrix[1][2] = 0.0;
-    m_isIdentity = TRUE;
+    m_isIdentity = true;
 
-    return TRUE;
+    return true;
 }
 
 // Scale by scale (isotropic scaling i.e. the same in x and y):
@@ -183,7 +183,7 @@ bool wxTransformMatrix::Scale(double scale)
     }
     m_isIdentity = IsIdentity1();
 
-    return TRUE;
+    return true;
 }
 
 
@@ -269,12 +269,12 @@ wxTransformMatrix&  wxTransformMatrix::Mirror(bool x, bool y)
     if (x)
     {
         temp.m_matrix[1][1] = -1;
-        temp.m_isIdentity=FALSE;
+        temp.m_isIdentity=false;
     }
     if (y)
     {
         temp.m_matrix[0][0] = -1;
-        temp.m_isIdentity=FALSE;
+        temp.m_isIdentity=false;
     }
 
     *this = temp * (*this);
@@ -297,7 +297,7 @@ bool wxTransformMatrix::Translate(double dx, double dy)
 
     m_isIdentity = IsIdentity1();
 
-    return TRUE;
+    return true;
 }
 
 // Rotate clockwise by the given number of degrees:
@@ -307,7 +307,7 @@ bool wxTransformMatrix::Translate(double dx, double dy)
 bool wxTransformMatrix::Rotate(double degrees)
 {
     Rotate(-degrees,0,0);
-    return TRUE;
+    return true;
 }
 
 // counter clockwise rotate around a point
@@ -385,13 +385,13 @@ bool wxTransformMatrix::TransformPoint(double x, double y, double& tx, double& t
 {
     if (IsIdentity())
     {
-        tx = x; ty = y; return TRUE;
+        tx = x; ty = y; return true;
     }
 
     tx = x * m_matrix[0][0] + y * m_matrix[1][0] + m_matrix[2][0];
     ty = x * m_matrix[0][1] + y * m_matrix[1][1] + m_matrix[2][1];
 
-    return TRUE;
+    return true;
 }
 
 // Transform a point from device to logical coordinates.
@@ -408,18 +408,18 @@ bool wxTransformMatrix::InverseTransformPoint(double x, double y, double& tx, do
 {
     if (IsIdentity())
     {
-        tx = x; ty = y; return TRUE;
+        tx = x; ty = y; return true;
     }
 
     double z = (1.0 - m_matrix[0][2] * x - m_matrix[1][2] * y) / m_matrix[2][2];
     if (z == 0.0)
     {
 //      z = 0.0000001;
-        return FALSE;
+        return false;
     }
     tx = x * m_matrix[0][0] + y * m_matrix[1][0] + z * m_matrix[2][0];
     ty = x * m_matrix[0][1] + y * m_matrix[1][1] + z * m_matrix[2][1];
-    return TRUE;
+    return true;
 }
 
 wxTransformMatrix& wxTransformMatrix::operator*=(const double& t)