Version: 2.9.5
wxAffineMatrix2D Class Reference

#include <wx/affinematrix2d.h>

+ Inheritance diagram for wxAffineMatrix2D:

Detailed Description

A 3x2 matrix representing an affine 2D transformation.

Library:  wxCore
Category:  Miscellaneous
Since
2.9.2

Public Member Functions

 wxAffineMatrix2D ()
 Default constructor.
 
void Get (wxMatrix2D *mat2D, wxPoint2DDouble *tr) const
 Get the component values of the matrix.
 
void Set (const wxMatrix2D &mat2D, const wxPoint2DDouble &tr)
 Set all elements of this matrix.
 
void Concat (const wxAffineMatrix2DBase &t)
 Concatenate this matrix with another one.
 
bool Invert ()
 Invert this matrix.
 
bool IsIdentity () const
 Check if this is the identity matrix.
 
bool operator!= (const wxAffineMatrix2DBase &t) const
 Check that this matrix differs from .
 
void Translate (wxDouble dx, wxDouble dy)
 Add the translation to this matrix.
 
void Scale (wxDouble xScale, wxDouble yScale)
 Add scaling to this matrix.
 
void Mirror (int direction=wxHORIZONTAL)
 Add mirroring to this matrix.
 
void Rotate (wxDouble cRadians)
 Add clockwise rotation to this matrix.
 
wxPoint2DDouble TransformPoint (const wxPoint2DDouble &p) const
 Applies this matrix to the point.
 
void TransformPoint (wxDouble *x, wxDouble *y) const
 
wxPoint2DDouble TransformDistance (const wxPoint2DDouble &p) const
 Applies the linear part of this matrix, i.e. without translation.
 
void TransformDistance (wxDouble *dx, wxDouble *dy) const
 
void IsEqual (const wxAffineMatrix2DBase &t)
 Check that this matrix is identical with .
 
bool operator== (const wxAffineMatrix2DBase &t) const
 Check that this matrix is identical with .
 
- Public Member Functions inherited from wxAffineMatrix2DBase
 wxAffineMatrix2DBase ()
 Default constructor.
 
virtual ~wxAffineMatrix2DBase ()
 
bool operator!= (const wxAffineMatrix2DBase &t) const
 Check that this matrix differs from .
 
void Mirror (int direction=wxHORIZONTAL)
 Add mirroring to this matrix.
 
wxPoint2DDouble TransformPoint (const wxPoint2DDouble &src) const
 Applies this matrix to the point.
 
void TransformPoint (wxDouble *x, wxDouble *y) const
 
wxPoint2DDouble TransformDistance (const wxPoint2DDouble &src) const
 Applies the linear part of this matrix, i.e. without translation.
 
void TransformDistance (wxDouble *dx, wxDouble *dy) const
 
virtual bool IsEqual (const wxAffineMatrix2DBase &t) const =0
 Check that this matrix is identical with .
 
bool operator== (const wxAffineMatrix2DBase &t) const
 Check that this matrix is identical with .
 

Constructor & Destructor Documentation

wxAffineMatrix2D::wxAffineMatrix2D ( )

Default constructor.

The matrix elements are initialize to the identity matrix.

Member Function Documentation

void wxAffineMatrix2D::Concat ( const wxAffineMatrix2DBase t)
virtual

Concatenate this matrix with another one.

The parameter matrix is the multiplicand.

Parameters
tThe multiplicand.
// | t.m_11 t.m_12 0 | | m_11 m_12 0 |
// matrix' = | t.m_21 t.m_22 0 | x | m_21 m_22 0 |
// | t.m_tx t.m_ty 1 | | m_tx m_ty 1 |

Implements wxAffineMatrix2DBase.

void wxAffineMatrix2D::Get ( wxMatrix2D mat2D,
wxPoint2DDouble tr 
) const
virtual

Get the component values of the matrix.

Parameters
mat2DThe rotational components of the matrix (upper 2 x 2), must be non-NULL.
trThe translational components of the matrix, may be NULL.

Implements wxAffineMatrix2DBase.

bool wxAffineMatrix2D::Invert ( )
virtual

Invert this matrix.

If the matrix is not invertible, i.e. if its determinant is 0, returns false and doesn't modify it.

// | m_11 m_12 0 |
// Invert | m_21 m_22 0 |
// | m_tx m_ty 1 |

Implements wxAffineMatrix2DBase.

void wxAffineMatrix2D::IsEqual ( const wxAffineMatrix2DBase t)

Check that this matrix is identical with .

Parameters
tThe matrix compared with this.
bool wxAffineMatrix2D::IsIdentity ( ) const
virtual

Check if this is the identity matrix.

Implements wxAffineMatrix2DBase.

void wxAffineMatrix2D::Mirror ( int  direction = wxHORIZONTAL)

Add mirroring to this matrix.

Parameters
directionThe direction(s) used for mirroring. One of wxHORIZONTAL, wxVERTICAL or their combination wxBOTH.
bool wxAffineMatrix2D::operator!= ( const wxAffineMatrix2DBase t) const

Check that this matrix differs from .

Parameters
tThe matrix compared with this.
bool wxAffineMatrix2D::operator== ( const wxAffineMatrix2DBase t) const

Check that this matrix is identical with .

Parameters
tThe matrix compared with this.
void wxAffineMatrix2D::Rotate ( wxDouble  cRadians)
virtual

Add clockwise rotation to this matrix.

Parameters
cRadiansRotation angle in radians, clockwise.
// | cos sin 0 | | m_11 m_12 0 |
// matrix' = | -sin cos 0 | x | m_21 m_22 0 |
// | 0 0 1 | | m_tx m_ty 1 |

Implements wxAffineMatrix2DBase.

void wxAffineMatrix2D::Scale ( wxDouble  xScale,
wxDouble  yScale 
)
virtual

Add scaling to this matrix.

Parameters
xScaleScaling in x direction.
yScaleScaling in y direction.
// | xScale 0 0 | | m_11 m_12 0 |
// matrix' = | 0 yScale 0 | x | m_21 m_22 0 |
// | 0 0 1 | | m_tx m_ty 1 |

Implements wxAffineMatrix2DBase.

void wxAffineMatrix2D::Set ( const wxMatrix2D mat2D,
const wxPoint2DDouble tr 
)
virtual

Set all elements of this matrix.

Parameters
mat2DThe rotational components of the matrix (upper 2 x 2).
trThe translational components of the matrix.

Implements wxAffineMatrix2DBase.

wxPoint2DDouble wxAffineMatrix2D::TransformDistance ( const wxPoint2DDouble p) const

Applies the linear part of this matrix, i.e. without translation.

Parameters
pThe source receiving the transformations.
Returns
The source with the transformations applied.
// | m_11 m_12 0 |
// dist' = | src.m_x src._my 0 | x | m_21 m_22 0 |
// | m_tx m_ty 1 |
void wxAffineMatrix2D::TransformDistance ( wxDouble dx,
wxDouble dy 
) const
wxPoint2DDouble wxAffineMatrix2D::TransformPoint ( const wxPoint2DDouble p) const

Applies this matrix to the point.

Parameters
pThe point receiving the transformations.
Returns
The point with the transformations applied.
// | m_11 m_12 0 |
// point' = | src.m_x src._my 1 | x | m_21 m_22 0 |
// | m_tx m_ty 1 |
void wxAffineMatrix2D::TransformPoint ( wxDouble x,
wxDouble y 
) const
void wxAffineMatrix2D::Translate ( wxDouble  dx,
wxDouble  dy 
)
virtual

Add the translation to this matrix.

Parameters
dxThe translation in x direction.
dyThe translation in y direction.
// | 1 0 0 | | m_11 m_12 0 |
// matrix' = | 0 1 0 | x | m_21 m_22 0 |
// | dx dy 1 | | m_tx m_ty 1 |

Implements wxAffineMatrix2DBase.