X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5d3e7b52d84580c28df8f754b81363502f917ac7..aa61d3525370a9b9fa8c797d9b7f89d96994db5f:/include/wx/geometry.h diff --git a/include/wx/geometry.h b/include/wx/geometry.h index 0b21a02f57..2aa92a80f9 100644 --- a/include/wx/geometry.h +++ b/include/wx/geometry.h @@ -4,7 +4,7 @@ // Author: Stefan Csomor // Modified by: // Created: 08/05/99 -// RCS-ID: +// RCS-ID: $Id$ // Copyright: (c) 1999 Stefan Csomor // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -12,29 +12,13 @@ #ifndef _WX_GEOMETRY_H_ #define _WX_GEOMETRY_H_ -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma interface "geometry.cpp" -#endif - #include "wx/defs.h" -#ifndef wxUSE_GEOMETRY - #define wxUSE_GEOMETRY 0 -#endif - #if wxUSE_GEOMETRY #include "wx/utils.h" #include "wx/gdicmn.h" -#include - -#ifdef __WXMSW__ - #define wxMulDivInt32( a , b , c ) ::MulDiv( a , b , c ) -#elif defined( __WXMAC__ ) - #define wxMulDivInt32( a , b , c ) ( (wxInt32) ( ( (wxInt64)(a) * (wxInt64)(b) ) / (wxInt64)(c) ) ) -#else - #define wxMulDivInt32( a , b , c ) ((wxInt32)((a)*(((wxDouble)b)/((wxDouble)c)))) -#endif +#include "wx/math.h" class WXDLLIMPEXP_BASE wxDataInputStream; class WXDLLIMPEXP_BASE wxDataOutputStream; @@ -457,12 +441,12 @@ inline wxPoint2DDouble& wxPoint2DDouble::operator/=(const wxPoint2DDouble& pt) inline bool wxPoint2DDouble::operator==(const wxPoint2DDouble& pt) const { - return m_x == pt.m_x && m_y == pt.m_y; + return wxIsSameDouble(m_x, pt.m_x) && wxIsSameDouble(m_y, pt.m_y); } inline bool wxPoint2DDouble::operator!=(const wxPoint2DDouble& pt) const { - return m_x != pt.m_x || m_y != pt.m_y; + return !(*this == pt); } inline wxPoint2DDouble operator+(const wxPoint2DDouble& pt1 , const wxPoint2DDouble& pt2) @@ -598,9 +582,9 @@ public: { return ( ( ( m_x <= rect.m_x ) && ( rect.m_x + rect.m_width <= m_x + m_width ) ) && ( ( m_y <= rect.m_y ) && ( rect.m_y + rect.m_height <= m_y + m_height ) ) ); } inline bool IsEmpty() const - { return ( m_width <= 0 || m_height <= 0 ); } + { return m_width <= 0 || m_height <= 0; } inline bool HaveEqualSize( const wxRect2DDouble &rect ) const - { return ( rect.m_width == m_width && rect.m_height == m_height ); } + { return wxIsSameDouble(rect.m_width, m_width) && wxIsSameDouble(rect.m_height, m_height); } inline void Inset( wxDouble x , wxDouble y ) { m_x += x; m_y += y; m_width -= 2 * x; m_height -= 2 * y; } @@ -635,9 +619,9 @@ public: m_width *= ((wxDouble)num)/((wxDouble)denum); m_height *= ((wxDouble)num)/((wxDouble)denum);} wxRect2DDouble& operator = (const wxRect2DDouble& rect); - inline bool operator == (const wxRect2DDouble& rect) - { return (m_x==rect.m_x && m_y==rect.m_y && m_width==rect.m_width && m_height==rect.m_height); } - inline bool operator != (const wxRect2DDouble& rect) + inline bool operator == (const wxRect2DDouble& rect) const + { return wxIsSameDouble(m_x, rect.m_x) && wxIsSameDouble(m_y, rect.m_y) && HaveEqualSize(rect); } + inline bool operator != (const wxRect2DDouble& rect) const { return !(*this == rect); } wxDouble m_x; @@ -789,6 +773,7 @@ inline bool wxRect2DInt::operator != (const wxRect2DInt& rect) const class wxTransform2D { public : + virtual ~wxTransform2D() { } virtual void Transform( wxPoint2DInt* pt )const = 0; virtual void Transform( wxRect2DInt* r ) const; virtual wxPoint2DInt Transform( const wxPoint2DInt &pt ) const;