]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/matrix.h
Make wxChoice and wxComboBox behaviour same as in native controls in wxMSW.
[wxWidgets.git] / include / wx / matrix.h
index bdabe7d008f3b3fae61d4db14edb5cd4b0042cdd..da6c5da78f05d055d157970f2c693b8cc06a0bef 100644 (file)
@@ -1,23 +1,20 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        matrix.h
-// Purpose:     wxTransformMatrix class. NOT YET USED
-// Author:      Chris Breeze, Julian Smart
+// Name:         wx/matrix.h
+// Purpose:      wxTransformMatrix class. NOT YET USED
+// Author:       Chris Breeze, Julian Smart
 // Modified by:  Klaas Holwerda
-// Created:     01/02/97
-// RCS-ID:      $Id$
-// Copyright:   (c) Julian Smart, Chris Breeze
-// Licence:     wxWindows licence
+// Created:      01/02/97
+// RCS-ID:       $Id$
+// Copyright:    (c) Julian Smart, Chris Breeze
+// Licence:      wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_MATRIXH__
 #define _WX_MATRIXH__
 
-#if defined(__GNUG__) && !defined(__APPLE__)
-#pragma interface "matrix.h"
-#endif
-
 //! headerfiles="matrix.h wx/object.h"
 #include "wx/object.h"
+#include "wx/math.h"
 
 //! codefiles="matrix.cpp"
 
 // Note: this is intended to be used in wxDC at some point to replace
 // the current system of scaling/translation. It is not yet used.
 
-//:defenition
+//:definition
 //  A 3x3 matrix to do 2D transformations.
-//  It can be used to map data to window coordinates.
-//  But also for manipulating your own data.
+//  It can be used to map data to window coordinates,
+//  and also for manipulating your own data.
 //  For example drawing a picture (composed of several primitives)
 //  at a certain coordinate and angle within another parent picture.
 //  At all times m_isIdentity is set if the matrix itself is an Identity matrix.
 //  It is used where possible to optimize calculations.
-class WXDLLEXPORT wxTransformMatrix: public wxObject
+class WXDLLIMPEXP_CORE wxTransformMatrix: public wxObject
 {
 public:
     wxTransformMatrix(void);
@@ -52,8 +49,8 @@ public:
     void SetValue(int col, int row, double value);
 
     void operator = (const wxTransformMatrix& mat);
-    bool operator == (const wxTransformMatrix& mat);
-    bool operator != (const wxTransformMatrix& mat);
+    bool operator == (const wxTransformMatrix& mat) const;
+    bool operator != (const wxTransformMatrix& mat) const;
 
     //multiply every element by t
     wxTransformMatrix&          operator*=(const double& t);
@@ -97,7 +94,7 @@ public:
     // Is the matrix the identity matrix?
     // Only returns a flag, which is set whenever an operation
     // is done.
-    inline bool IsIdentity(void) const { return m_isIdentity; };
+    inline bool IsIdentity(void) const { return m_isIdentity; }
 
     // This does an actual check.
     inline bool IsIdentity1(void) const ;
@@ -122,7 +119,7 @@ public:
     //!code:           | -1     0      0 |
     //!code: matrix' = |  0    -1      0 | x matrix
     //!code:           |  0     0      1 |
-    wxTransformMatrix&  Mirror(bool x=TRUE, bool y=FALSE);
+    wxTransformMatrix&  Mirror(bool x=true, bool y=false);
     // Translate by dx, dy:
     //!ex:
     //!code:           | 1  0 dx |
@@ -218,15 +215,15 @@ inline double wxTransformMatrix::TransformY(double y) const
 inline bool wxTransformMatrix::IsIdentity1(void) const
 {
     return
-     (m_matrix[0][0] == 1.0 &&
-      m_matrix[1][1] == 1.0 &&
-      m_matrix[2][2] == 1.0 &&
-      m_matrix[1][0] == 0.0 &&
-      m_matrix[2][0] == 0.0 &&
-      m_matrix[0][1] == 0.0 &&
-      m_matrix[2][1] == 0.0 &&
-      m_matrix[0][2] == 0.0 &&
-      m_matrix[1][2] == 0.0) ;
+    ( wxIsSameDouble(m_matrix[0][0], 1.0) &&
+      wxIsSameDouble(m_matrix[1][1], 1.0) &&
+      wxIsSameDouble(m_matrix[2][2], 1.0) &&
+      wxIsSameDouble(m_matrix[1][0], 0.0) &&
+      wxIsSameDouble(m_matrix[2][0], 0.0) &&
+      wxIsSameDouble(m_matrix[0][1], 0.0) &&
+      wxIsSameDouble(m_matrix[2][1], 0.0) &&
+      wxIsSameDouble(m_matrix[0][2], 0.0) &&
+      wxIsSameDouble(m_matrix[1][2], 0.0) );
 }
 
 // Calculates the determinant of a 2 x 2 matrix
@@ -235,5 +232,4 @@ inline double wxCalculateDet(double a11, double a21, double a12, double a22)
     return a11 * a22 - a12 * a21;
 }
 
-#endif
-    // _WX_MATRIXH__
+#endif // _WX_MATRIXH__