42 #include <QtGui/qtguiglobal.h>
43 #include <QtGui/qpolygon.h>
44 #include <QtGui/qregion.h>
45 #include <QtGui/qwindowdefs.h>
46 #include <QtCore/qline.h>
47 #include <QtCore/qpoint.h>
48 #include <QtCore/qrect.h>
69 : m_matrix{ {1, 0, 0}, {0, 1, 0}, {0, 0, 1} }
75 : m_matrix{ {h11, h12, h13}, {h21, h22, h23}, {h31, h32, h33} }
77 , m_dirty(TxProject) {}
80 : m_matrix{ {h11, h12, 0}, {h21, h22, 0}, {dx, dy, 1} }
89 bool isAffine()
const;
90 bool isIdentity()
const;
91 bool isInvertible()
const;
92 bool isScaling()
const;
93 bool isRotating()
const;
94 bool isTranslating()
const;
98 inline qreal determinant()
const;
116 [[nodiscard]]
QTransform inverted(
bool *invertible =
nullptr)
const;
128 static bool quadToQuad(
const QPolygonF &one,
152 void map(
int x,
int y,
int *tx,
int *
ty)
const;
165 qreal (& m_matrix)[3][3];
174 inline TransformationType inline_type()
const;
175 qreal m_matrix[3][3];
177 mutable uint m_type : 5;
178 mutable uint m_dirty : 5;
187 if (m_dirty == TxNone)
188 return static_cast<TransformationType
>(m_type);
198 return inline_type() ==
TxNone;
222 return m_matrix[0][0] * (m_matrix[2][2] * m_matrix[1][1] - m_matrix[2][1] * m_matrix[1][2]) -
223 m_matrix[1][0] * (m_matrix[2][2] * m_matrix[0][1] - m_matrix[2][1] * m_matrix[0][2]) +
224 m_matrix[2][0] * (m_matrix[1][2] * m_matrix[0][1] - m_matrix[1][1] * m_matrix[0][2]);
228 return m_matrix[0][0];
232 return m_matrix[0][1];
236 return m_matrix[0][2];
240 return m_matrix[1][0];
244 return m_matrix[1][1];
248 return m_matrix[1][2];
252 return m_matrix[2][0];
256 return m_matrix[2][1];
260 return m_matrix[2][2];
264 return m_matrix[2][0];
268 return m_matrix[2][1];
278 m_matrix[0][0] *=
num;
279 m_matrix[0][1] *=
num;
280 m_matrix[0][2] *=
num;
281 m_matrix[1][0] *=
num;
282 m_matrix[1][1] *=
num;
283 m_matrix[1][2] *=
num;
284 m_matrix[2][0] *=
num;
285 m_matrix[2][1] *=
num;
286 m_matrix[2][2] *=
num;
302 m_matrix[0][0] +=
num;
303 m_matrix[0][1] +=
num;
304 m_matrix[0][2] +=
num;
305 m_matrix[1][0] +=
num;
306 m_matrix[1][1] +=
num;
307 m_matrix[1][2] +=
num;
308 m_matrix[2][0] +=
num;
309 m_matrix[2][1] +=
num;
310 m_matrix[2][2] +=
num;
318 m_matrix[0][0] -=
num;
319 m_matrix[0][1] -=
num;
320 m_matrix[0][2] -=
num;
321 m_matrix[1][0] -=
num;
322 m_matrix[1][1] -=
num;
323 m_matrix[1][2] -=
num;
324 m_matrix[2][0] -=
num;
325 m_matrix[2][1] -=
num;
326 m_matrix[2][2] -=
num;
348 #ifndef QT_NO_DATASTREAM
353 #ifndef QT_NO_DEBUG_STREAM
const QByteArray operator+(const QByteArray &a1, const QByteArray &a2)
The QDataStream class provides serialization of binary data to a QIODevice.
operator>>(QDataStream &ds, qfloat16 &f)
operator<<(QDataStream &ds, qfloat16 f)
The QDebug class provides an output stream for debugging information.
template< typename Enum > bool operator!=(Enum lhs, QFlags< Enum > rhs)
template< typename Enum > size_t qHash(QFlags< Enum > flags, size_t seed=0) noexcept
template< typename Enum > bool operator==(Enum lhs, QFlags< Enum > rhs)
The QLineF class provides a two-dimensional vector using floating point precision.
The QLine class provides a two-dimensional vector using integer precision.
QMargins operator*(const QMargins &margins, int factor)
QMargins operator/(const QMargins &margins, int divisor)
QMargins operator-(const QMargins &m1, const QMargins &m2)
bool qFuzzyCompare(const QMatrix4x4 &m1, const QMatrix4x4 &m2)
The QPainterPath class provides a container for painting operations, enabling graphical shapes to be ...
The QPointF class defines a point in the plane using floating point precision.
The QPoint class defines a point in the plane using integer precision.
The QPolygonF class provides a list of points using floating point precision. \inmodule QtGui.
The QPolygon class provides a list of points using integer precision. \inmodule QtGui.
The QRectF class defines a finite rectangle in the plane using floating point precision.
The QRect class defines a rectangle in the plane using integer precision.
The QRegion class specifies a clip region for a painter.
The QVariant class acts like a union for the most common Qt data types.
QMap< QString, QString > map
[6]
QString & operator+=(QString &that, const ProString &other)
#define Q_DECL_CONST_FUNCTION
#define QT_WARNING_DISABLE_FLOAT_COMPARE
bool qFuzzyIsNull(qfloat16 f) noexcept
QT_END_INCLUDE_NAMESPACE typedef double qreal
GLint GLint GLint GLint GLint x
[0]
GLboolean GLboolean GLboolean GLboolean a
[7]
GLuint GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat t1
[4]
GLenum GLenum GLenum GLenum GLenum scale
rect rect item rotate(45)
[5]