/////////////////////////////////////////////////////////////////////////////
-// 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);
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);
// 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 ;
//!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 |
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
return a11 * a22 - a12 * a21;
}
-#endif
- // _WX_MATRIXH__
+#endif // _WX_MATRIXH__