X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/77ffb5937e89927b621128789401db8921fe580f..cc4d5638c66a409e421420ed7110917755a66788:/src/common/geometry.cpp?ds=sidebyside diff --git a/src/common/geometry.cpp b/src/common/geometry.cpp index 83948c28d7..3f1cd03a89 100644 --- a/src/common/geometry.cpp +++ b/src/common/geometry.cpp @@ -1,39 +1,32 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: common/geometry.cpp +// Name: src/common/geometry.cpp // Purpose: Common Geometry Classes // Author: Stefan Csomor // Modified by: // Created: 08/05/99 -// RCS-ID: // Copyright: (c) 1999 Stefan Csomor -// Licence: wxWidgets licence +// 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 - #include "wx/geometry.h" -#include "wx/datstrm.h" -// normally this is defined in -#ifndef M_PI - #define M_PI 3.14159265358979323846 +#ifndef WX_PRECOMP + #include "wx/log.h" #endif +#include + +#include "wx/datstrm.h" + // // wxPoint2D // @@ -57,9 +50,9 @@ bool wxRect2DDouble::Intersects( const wxRect2DDouble &rect ) const if ( left < right && top < bottom ) { - return TRUE; + return true; } - return FALSE; + return false; } void wxRect2DDouble::Intersect( const wxRect2DDouble &src1 , const wxRect2DDouble &src2 , wxRect2DDouble *dest ) @@ -211,14 +204,14 @@ void wxPoint2DInt::SetVectorAngle( wxDouble degrees ) 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; @@ -252,9 +245,9 @@ bool wxRect2DInt::Intersects( const wxRect2DInt &rect ) const if ( left < right && top < bottom ) { - return TRUE; + return true; } - return FALSE; + return false; } void wxRect2DInt::Intersect( const wxRect2DInt &src1 , const wxRect2DInt &src2 , wxRect2DInt *dest ) @@ -367,4 +360,51 @@ void wxRect2DInt::ReadFrom( wxDataInputStream &stream ) } #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