| 
    Wt
    3.7.1
    
   | 
 
A value class that defines a 2D affine transformation matrix. More...
#include <Wt/WTransform>

Classes | |
| struct | TRSRDecomposition | 
| Result of a TRSR decomposition.  More... | |
| struct | TRSSDecomposition | 
| Result of a TRSS decomposition.  More... | |
Public Member Functions | |
| WTransform () | |
| Default constructor.  More... | |
| WTransform (double m11, double m12, double m21, double m22, double dx, double dy) | |
| Construct a custom matrix by specifying the parameters.  More... | |
| WTransform (const WTransform &other) | |
| Copy constructor.  | |
| WTransform & | operator= (const WTransform &rhs) | 
| Assignment operator.  More... | |
| bool | operator== (const WTransform &rhs) const | 
| Comparison operator.  More... | |
| bool | operator!= (const WTransform &rhs) const | 
| Comparison operator.  More... | |
| bool | isIdentity () const | 
| Identity check.  More... | |
| double | m11 () const | 
| Returns the horizontal scaling factor.  | |
| double | m12 () const | 
| Returns the vertical shearing factor.  | |
| double | m13 () const | 
| Returns m13 = 0.  | |
| double | m21 () const | 
| Returns the horizontal shearing factor.  | |
| double | m22 () const | 
| Returns the vertical scaling factor.  | |
| double | m23 () const | 
| Returns m23 = 0.  | |
| double | m31 () const | 
| Returns the horizontal translation factor.  More... | |
| double | m32 () const | 
| Returns the vertical translation factor.  More... | |
| double | m33 () const | 
| Returns m33 = 1.  | |
| double | dx () const | 
| Returns the horizontal translation factor.  More... | |
| double | dy () const | 
| Returns the vertical translation factor.  More... | |
| WPointF | map (const WPointF &p) const | 
| Applys the transformation to a point.  More... | |
| void | map (double x, double y, double *tx, double *ty) const | 
| Applys the transformation to a point.  More... | |
| WRectF | map (const WRectF &rect) const | 
| Applies the transformation to a rectangle.  More... | |
| WPainterPath | map (const WPainterPath &path) const | 
| Applies the transformation to a painter path.  More... | |
| void | reset () | 
| Resets the transformation to the identity.  More... | |
| WTransform & | rotate (double angle) | 
| Rotates the transformation.  More... | |
| WTransform & | rotateRadians (double angle) | 
| Rotates the transformation.  More... | |
| WTransform & | scale (double sx, double sy) | 
| Scales the transformation.  More... | |
| WTransform & | shear (double sh, double sv) | 
| Shears the transformation.  More... | |
| WTransform & | translate (double dx, double dy) | 
| Translates the transformation.  More... | |
| WTransform & | translate (const WPointF &p) | 
| Translates the transformation.  More... | |
| WTransform & | operator*= (const WTransform &rhs) | 
| Adds a transform that is conceptually applied after this transform.  | |
| WTransform | operator* (const WTransform &rhs) const | 
| Multiply 2 transform objects.  | |
| double | determinant () const | 
| Returns the determinant.  | |
| WTransform | adjoint () const | 
| Returns the adjoint.  | |
| WTransform | inverted () const | 
| Returns the inverted transformation.  More... | |
| void | decomposeTranslateRotateScaleSkew (TRSSDecomposition &result) const | 
| Decomposes the transformation.  More... | |
| void | decomposeTranslateRotateScaleRotate (TRSRDecomposition &result) const | 
| Decomposes the transformation.  More... | |
| virtual std::string | jsValue () const WT_CXX11ONLY(override) | 
| Returns a JavaScript representation of the value of this object.  More... | |
  Public Member Functions inherited from Wt::WJavaScriptExposableObject | |
| bool | isJavaScriptBound () const | 
| Returns whether this object is JavaScript bound.  More... | |
| std::string | jsRef () const | 
| Returns a JavaScript reference to this object.  More... | |
Static Public Member Functions | |
| static double | degreesToRadians (double angle) | 
| Utility method to convert degrees to radians.  | |
Static Public Attributes | |
| static const WTransform | Identity | 
| A constant that represents the identity transform.  More... | |
A value class that defines a 2D affine transformation matrix.
The matrix is encoded using 6 parameters:
In this representation, dx() (= m31()) and dy() (= m32()) represent the translation components, and mxy represent a 2D matrix that contains the scale, rotation (and skew) components.
The transformation is used to represent a tansformed coordinate system, and provides methods to rotate(), scale(), shear() or translate() this coordinate system.
There are also 2 methods to decompose an arbitrary matrix into elementary operations:
with T a translation, R a rotation, Sxx a scale, and Sxy a skew component.
A WTransform is JavaScript exposable. If a WTransform is JavaScript bound, it can be accessed in your custom JavaScript code through its handle's jsRef(). A transform is represented as a JavaScript array, e.g. a WTransform(m11, m12, m21, m22, dx, dy) will be represented in JavaScript by:
As an exception to the general rule that JavaScript bound objects should not be modified, WTransform does support many modifications. These modifications will then accumulate in the JavaScript representation of the transform.
| Wt::WTransform::WTransform | ( | ) | 
Default constructor.
Creates the identity transformation matrix.
| Wt::WTransform::WTransform | ( | double | m11, | 
| double | m12, | ||
| double | m21, | ||
| double | m22, | ||
| double | dx, | ||
| double | dy | ||
| ) | 
Construct a custom matrix by specifying the parameters.
Creates a matrix from the specified parameters.
| void Wt::WTransform::decomposeTranslateRotateScaleRotate | ( | TRSRDecomposition & | result | ) | const | 
Decomposes the transformation.
Decomposes the transformation into elementary operations: translation (dx, dy), followed by rotation (alpha2), followed by scale (sx, sy) and again a rotation (alpha2). The angles are expressed in radians.
This performs a Singular Value Decomposition (SVD).
| void Wt::WTransform::decomposeTranslateRotateScaleSkew | ( | TRSSDecomposition & | result | ) | const | 
Decomposes the transformation.
Decomposes the transformation into elementary operations: translation (dx, dy), followed by rotation (alpha), followed by scale (sx, sy) and vertical shearing factor (sh). The angle is expressed in radians.
This performs a Gram-Schmidt orthonormalization.
| double Wt::WTransform::dx | ( | ) | const | 
Returns the horizontal translation factor.
Is equivalent to m31()
| double Wt::WTransform::dy | ( | ) | const | 
Returns the vertical translation factor.
Is equivalent to m32()
| WTransform Wt::WTransform::inverted | ( | ) | const | 
Returns the inverted transformation.
Returns this if the transformation could not be inverted (determinant() == 0), and logs an error instead. 
| bool Wt::WTransform::isIdentity | ( | ) | const | 
Identity check.
Returns true if the transform represents an identity transformation.
      
  | 
  overridevirtual | 
Returns a JavaScript representation of the value of this object.
Implements Wt::WJavaScriptExposableObject.
| double Wt::WTransform::m31 | ( | ) | const | 
Returns the horizontal translation factor.
Is equivalent to dx()
| double Wt::WTransform::m32 | ( | ) | const | 
Returns the vertical translation factor.
Is equivalent to dy()
Applys the transformation to a point.
Returns the transformed point.
| void Wt::WTransform::map | ( | double | x, | 
| double | y, | ||
| double * | tx, | ||
| double * | ty | ||
| ) | const | 
Applys the transformation to a point.
Sets the point (tx, ty) to the transformation of the point (x, y).
Applies the transformation to a rectangle.
Since the rectangle is aligned with X and Y axes, this may increase the size of the rectangle even for a transformation that only rotates.
| WPainterPath Wt::WTransform::map | ( | const WPainterPath & | path | ) | const | 
Applies the transformation to a painter path.
This will transform all individual points according to the transformation. The radius of arcs will be unaffected.
| bool Wt::WTransform::operator!= | ( | const WTransform & | rhs | ) | const | 
Comparison operator.
Returns true if the transforms are different. 
| WTransform & Wt::WTransform::operator= | ( | const WTransform & | rhs | ) | 
Assignment operator.
Copies the transformation from the rhs. 
| bool Wt::WTransform::operator== | ( | const WTransform & | rhs | ) | const | 
Comparison operator.
Returns true if the transforms are exactly the same. 
| void Wt::WTransform::reset | ( | ) | 
Resets the transformation to the identity.
| WException | if the transform is JavaScript bound | 
| WTransform & Wt::WTransform::rotate | ( | double | angle | ) | 
Rotates the transformation.
Applies a clock-wise rotation to the current transformation matrix, over angle degrees.
| WTransform & Wt::WTransform::rotateRadians | ( | double | angle | ) | 
Rotates the transformation.
Applies a clock-wise rotation to the current transformation matrix, over angle radians.
| WTransform & Wt::WTransform::scale | ( | double | sx, | 
| double | sy | ||
| ) | 
| WTransform & Wt::WTransform::shear | ( | double | sh, | 
| double | sv | ||
| ) | 
| WTransform & Wt::WTransform::translate | ( | double | dx, | 
| double | dy | ||
| ) | 
Translates the transformation.
Translates the current transformation.
| WTransform & Wt::WTransform::translate | ( | const WPointF & | p | ) | 
Translates the transformation.
Translates the current transformation.
      
  | 
  static | 
A constant that represents the identity transform.
 1.8.13