]> git.saurik.com Git - wxWidgets.git/blame - include/wx/affinematrix2d.h
Harmonize wxDataViewCtrl::GetSelection() behaviour in all ports.
[wxWidgets.git] / include / wx / affinematrix2d.h
CommitLineData
0e5d4c38
VZ
1/////////////////////////////////////////////////////////////////////////////
2// Name: wx/affinematrix2d.h
3// Purpose: wxAffineMatrix2D class.
4// Author: Based on wxTransformMatrix by Chris Breeze, Julian Smart
5// Created: 2011-04-05
6// Copyright: (c) wxWidgets team
7// Licence: wxWidgets licence
8/////////////////////////////////////////////////////////////////////////////
9
10#ifndef _WX_AFFINEMATRIX2D_H_
11#define _WX_AFFINEMATRIX2D_H_
12
eb2087c5
VZ
13#include "wx/defs.h"
14
15#if wxUSE_GEOMETRY
16
0e5d4c38
VZ
17#include "wx/affinematrix2dbase.h"
18
19// A simple implementation of wxAffineMatrix2DBase interface done entirely in
20// wxWidgets.
21class WXDLLIMPEXP_CORE wxAffineMatrix2D : public wxAffineMatrix2DBase
22{
23public:
24 wxAffineMatrix2D() : m_11(1), m_12(0),
25 m_21(0), m_22(1),
26 m_tx(0), m_ty(0)
27 {
28 }
29
30 // Implement base class pure virtual methods.
31 virtual void Set(const wxMatrix2D& mat2D, const wxPoint2DDouble& tr);
32 virtual void Get(wxMatrix2D* mat2D, wxPoint2DDouble* tr) const;
33 virtual void Concat(const wxAffineMatrix2DBase& t);
34 virtual bool Invert();
35 virtual bool IsIdentity() const;
36 virtual bool IsEqual(const wxAffineMatrix2DBase& t) const;
37 virtual void Translate(wxDouble dx, wxDouble dy);
38 virtual void Scale(wxDouble xScale, wxDouble yScale);
39 virtual void Rotate(wxDouble ccRadians);
40
41protected:
42 virtual wxPoint2DDouble DoTransformPoint(const wxPoint2DDouble& p) const;
43 virtual wxPoint2DDouble DoTransformDistance(const wxPoint2DDouble& p) const;
44
45private:
46 wxDouble m_11, m_12, m_21, m_22, m_tx, m_ty;
47};
48
eb2087c5
VZ
49#endif // wxUSE_GEOMETRY
50
0e5d4c38 51#endif // _WX_AFFINEMATRIX2D_H_