+///////////////////////////////////////////////////////////////////////////////
// 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>
-static const double pi = 3.1415926535;
+static const double pi = M_PI;
wxTransformMatrix::wxTransformMatrix(void)
{
- m_isIdentity = FALSE;
+ m_isIdentity = false;
Identity();
}
wxTransformMatrix::wxTransformMatrix(const wxTransformMatrix& mat)
+ : wxObject()
{
(*this) = 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++)
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)
}
}
m_isIdentity = IsIdentity1();
- return TRUE;
+ return true;
}
else
{
- return FALSE;
+ return false;
}
}
{
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):
}
m_isIdentity = IsIdentity1();
- return TRUE;
+ return true;
}
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);
m_isIdentity = IsIdentity1();
- return TRUE;
+ return true;
}
// Rotate clockwise by the given number of degrees:
bool wxTransformMatrix::Rotate(double degrees)
{
Rotate(-degrees,0,0);
- return TRUE;
+ return true;
}
// counter clockwise rotate around a point
{
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.
{
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)