X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/adb1282e8ec3645568f5ebc9d1425ba0d109286f..a7c26d107d0c6f191e55d30613f4816e9c2f9386:/src/common/geometry.cpp diff --git a/src/common/geometry.cpp b/src/common/geometry.cpp index bf8591fd67..51fe2842ee 100644 --- a/src/common/geometry.cpp +++ b/src/common/geometry.cpp @@ -9,7 +9,7 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "geometry.cpp" #endif @@ -26,10 +26,14 @@ #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 +#endif + // // wxPoint2D // @@ -141,6 +145,15 @@ void wxRect2DDouble::ConstrainTo( const wxRect2DDouble &rect ) SetTop( rect.GetTop() ); } +wxRect2DDouble& wxRect2DDouble::operator=( const wxRect2DDouble &r ) +{ + m_x = r.m_x; + m_y = r.m_y; + m_width = r.m_width; + m_height = r.m_height; + return *this; +} + // integer version // for the following calculations always remember @@ -148,6 +161,7 @@ void wxRect2DDouble::ConstrainTo( const wxRect2DDouble &rect ) // wxPoint2D +#if wxUSE_STREAMS void wxPoint2DInt::WriteTo( wxDataOutputStream &stream ) const { stream.Write32( m_x ); @@ -159,8 +173,9 @@ void wxPoint2DInt::ReadFrom( wxDataInputStream &stream ) m_x = stream.Read32(); m_y = stream.Read32(); } +#endif // wxUSE_STREAMS -wxDouble wxPoint2DInt::GetVectorAngle() +wxDouble wxPoint2DInt::GetVectorAngle() const { if ( m_x == 0 ) { @@ -177,8 +192,8 @@ wxDouble wxPoint2DInt::GetVectorAngle() return 180; } - // casts needed MIPSpro compiler under SGI - wxDouble deg = atan2( (double)m_y , (double)m_x ) * 180 / 3.14159265359; + // casts needed for MIPSpro compiler under SGI + wxDouble deg = atan2( (double)m_y , (double)m_x ) * 180 / M_PI; if ( deg < 0 ) { deg += 360; @@ -187,40 +202,42 @@ wxDouble wxPoint2DInt::GetVectorAngle() } -void wxPoint2DInt::SetVectorAngle( wxDouble degrees ) { - wxDouble length = this->GetVectorLength() ; - m_x = length * cos( degrees / 180 * 3.14159265359 ) ; - m_y = length * sin( degrees / 180 * 3.14159265359 ) ; +void wxPoint2DInt::SetVectorAngle( wxDouble degrees ) +{ + wxDouble length = GetVectorLength(); + m_x = (int)(length * cos( degrees / 180 * M_PI )); + m_y = (int)(length * sin( degrees / 180 * M_PI )); } - + wxDouble wxPoint2DDouble::GetVectorAngle() const { - if ( m_x == 0 ) - { - if ( m_y >= 0 ) - return 90 ; - else - return 270 ; - } - if ( m_y == 0 ) - { - if ( m_x >= 0 ) - return 0 ; - else - return 180 ; - } - wxDouble deg = atan2( m_y , m_x ) * 180 / 3.14159265359 ; - if ( deg < 0 ) - { - deg += 360 ; - } - return deg ; + if ( m_x == 0 ) + { + if ( m_y >= 0 ) + return 90; + else + return 270; + } + if ( m_y == 0 ) + { + if ( m_x >= 0 ) + return 0; + else + return 180; + } + wxDouble deg = atan2( m_y , m_x ) * 180 / M_PI; + if ( deg < 0 ) + { + deg += 360; + } + return deg; } -void wxPoint2DDouble::SetVectorAngle( wxDouble degrees ) { - wxDouble length = this->GetVectorLength() ; - m_x = length * cos( degrees / 180 * 3.14159265359 ) ; - m_y = length * sin( degrees / 180 * 3.14159265359 ) ; +void wxPoint2DDouble::SetVectorAngle( wxDouble degrees ) +{ + wxDouble length = GetVectorLength(); + m_x = length * cos( degrees / 180 * M_PI ); + m_y = length * sin( degrees / 180 * M_PI ); } // wxRect2D @@ -332,6 +349,7 @@ wxRect2DInt& wxRect2DInt::operator=( const wxRect2DInt &r ) return *this; } +#if wxUSE_STREAMS void wxRect2DInt::WriteTo( wxDataOutputStream &stream ) const { stream.Write32( m_x ); @@ -347,5 +365,6 @@ void wxRect2DInt::ReadFrom( wxDataInputStream &stream ) m_width = stream.Read32(); m_height = stream.Read32(); } +#endif // wxUSE_STREAMS #endif // wxUSE_GEOMETRY