/////////////////////////////////////////////////////////////////////////////
-// Name: common/geometry.cpp
+// Name: src/common/geometry.cpp
// Purpose: Common Geometry Classes
// Author: Stefan Csomor
// Modified by:
// Created: 08/05/99
-// RCS-ID:
+// RCS-ID: $Id$
// Copyright: (c) 1999 Stefan Csomor
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
- #pragma implementation "geometry.cpp"
-#endif
-
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
-
#ifdef __BORLANDC__
-#pragma hdrstop
+ #pragma hdrstop
#endif
#if wxUSE_GEOMETRY
-#include "wx/log.h"
-#include <string.h>
-
#include "wx/geometry.h"
-#include "wx/datstrm.h"
-// normally this is defined in <math.h>
-#ifndef M_PI
- #define M_PI 3.14159265358979323846
+#ifndef WX_PRECOMP
+ #include "wx/log.h"
#endif
+#include <string.h>
+
+#include "wx/datstrm.h"
+
//
// wxPoint2D
//
wxDouble wxPoint2DDouble::GetVectorAngle() const
{
- if ( m_x == 0 )
+ if ( wxIsNullDouble(m_x) )
{
if ( m_y >= 0 )
return 90;
else
return 270;
}
- if ( m_y == 0 )
+ if ( wxIsNullDouble(m_y) )
{
if ( m_x >= 0 )
return 0;
}
#endif // wxUSE_STREAMS
+
+// wxTransform2D
+
+void wxTransform2D::Transform( wxRect2DInt* r ) const
+{
+ wxPoint2DInt a = r->GetLeftTop(), b = r->GetRightBottom();
+ Transform( &a );
+ Transform( &b );
+ *r = wxRect2DInt( a, b );
+}
+
+wxPoint2DInt wxTransform2D::Transform( const wxPoint2DInt &pt ) const
+{
+ wxPoint2DInt res = pt;
+ Transform( &res );
+ return res;
+}
+
+wxRect2DInt wxTransform2D::Transform( const wxRect2DInt &r ) const
+{
+ wxRect2DInt res = r;
+ Transform( &res );
+ return res;
+}
+
+void wxTransform2D::InverseTransform( wxRect2DInt* r ) const
+{
+ wxPoint2DInt a = r->GetLeftTop(), b = r->GetRightBottom();
+ InverseTransform( &a );
+ InverseTransform( &b );
+ *r = wxRect2DInt( a , b );
+}
+
+wxPoint2DInt wxTransform2D::InverseTransform( const wxPoint2DInt &pt ) const
+{
+ wxPoint2DInt res = pt;
+ InverseTransform( &res );
+ return res;
+}
+
+wxRect2DInt wxTransform2D::InverseTransform( const wxRect2DInt &r ) const
+{
+ wxRect2DInt res = r;
+ InverseTransform( &res );
+ return res;
+}
+
#endif // wxUSE_GEOMETRY