Move wxTransform2D methods' bodies to geometry.cpp.

They are all virtual and so cannot be inlined anyway and having them in
the header like this confuses the g++ linker into always pulling some of
the methods in merely because geometry.h was included.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73984 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík 2013-05-14 16:58:20 +00:00
parent 32abcfc2ae
commit a68c185d22
2 changed files with 48 additions and 19 deletions

View File

@ -778,7 +778,7 @@ inline bool wxRect2DInt::operator != (const wxRect2DInt& rect) const
return !(*this == rect);
}
class wxTransform2D
class WXDLLIMPEXP_CORE wxTransform2D
{
public :
virtual ~wxTransform2D() { }
@ -793,24 +793,6 @@ public :
virtual wxRect2DInt InverseTransform( const wxRect2DInt &r ) const ;
};
inline void wxTransform2D::Transform( wxRect2DInt* r ) const
{ wxPoint2DInt a = r->GetLeftTop() , b = r->GetRightBottom(); Transform( &a ); Transform( &b ); *r = wxRect2DInt( a , b ); }
inline wxPoint2DInt wxTransform2D::Transform( const wxPoint2DInt &pt ) const
{ wxPoint2DInt res = pt; Transform( &res ); return res; }
inline wxRect2DInt wxTransform2D::Transform( const wxRect2DInt &r ) const
{ wxRect2DInt res = r; Transform( &res ); return res; }
inline void wxTransform2D::InverseTransform( wxRect2DInt* r ) const
{ wxPoint2DInt a = r->GetLeftTop() , b = r->GetRightBottom(); InverseTransform( &a ); InverseTransform( &b ); *r = wxRect2DInt( a , b ); }
inline wxPoint2DInt wxTransform2D::InverseTransform( const wxPoint2DInt &pt ) const
{ wxPoint2DInt res = pt; InverseTransform( &res ); return res; }
inline wxRect2DInt wxTransform2D::InverseTransform( const wxRect2DInt &r ) const
{ wxRect2DInt res = r; InverseTransform( &res ); return res; }
#endif // wxUSE_GEOMETRY

View File

@ -361,4 +361,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