Hot Door CORE  0.7.0
Adobe® Illustrator® Plug-in Library
hdicoreTransformMatrix.h
Go to the documentation of this file.
1 
7 #ifndef __HDI_CORE_TRANSFORM_MATRIX__
8 #define __HDI_CORE_TRANSFORM_MATRIX__
9 
10 #include <memory>
11 
12 namespace hdi
13 {
14  namespace plugin
15  {
16  class TransformMatrix;
17  }
18 
19  namespace core
20  {
21  class Angle;
22 
27  {
28  public:
32  double a;
33 
37  double b;
38 
42  double c;
43 
47  double d;
48 
52  double tx;
53 
57  double ty;
58 
65 
79  const double a_,
80  const double b_,
81  const double c_,
82  const double d_,
83  const double tx_,
84  const double ty_
85  );
86 
95 
101  virtual ~TransformMatrix();
102 
108  virtual void setIdentity();
109 
117  virtual bool isIdentity() const;
118 
130  virtual void setTranslate(const double tx_, const double ty_);
131 
139  virtual void setRotate(const Angle& angle_);
140 
149  virtual void setScale(const double sx_, const double sy_);
150 
162  virtual void concatTranslate(const double tx_, const double ty_);
163 
171  virtual void concatRotate(const Angle& angle_);
172 
181  virtual void concatScale(const double sx_, const double sy_);
182 
190  virtual void concat(const TransformMatrix& matrix2_);
191 
199  virtual double determinant() const;
200 
208  virtual bool degenerate() const;
209 
223  virtual bool invert(TransformMatrix& inverse__) const;
224 
233  virtual bool operator==(const TransformMatrix& rhs_) const;
234 
243  virtual bool operator!=(const TransformMatrix& rhs_) const;
244 
253  virtual TransformMatrix& operator=(const TransformMatrix& rhs_);
254 
264  virtual TransformMatrix operator*(const TransformMatrix& rhs_) const;
265 
275  virtual TransformMatrix& operator*=(const TransformMatrix& rhs_);
276 
277 
278  private:
279  friend plugin::TransformMatrix* __accessImpl(const TransformMatrix&);
280  friend TransformMatrix __accessCtor(const plugin::TransformMatrix&);
281 
285  plugin::TransformMatrix* __impl;
286 
292  TransformMatrix(const plugin::TransformMatrix&);
293  };
294 
295  typedef std::auto_ptr<TransformMatrix> TransformMatrixAP;
296 
297  extern plugin::TransformMatrix* __accessImpl(const TransformMatrix&);
298  extern TransformMatrix __accessCtor(const plugin::TransformMatrix&);
299  }
300 }
301 
302 #endif
303 // __HDI_CORE_TRANSFORM_MATRIX__
virtual void setScale(const double sx_, const double sy_)
Sets the scale values, from the origin, of a matrix.
virtual void concatTranslate(const double tx_, const double ty_)
Concatenates translation values to an existing matrix.
TransformMatrix()
Constructs a TransformMatrix and sets its entries to that of an identity matrix.
double a
Row 0, column 0 of the transformation matrix.
Definition: hdicoreTransformMatrix.h:32
virtual bool operator!=(const TransformMatrix &rhs_) const
Compares two matrices for inequality.
virtual TransformMatrix & operator*=(const TransformMatrix &rhs_)
Multiplies and assigns (concatenates) one matrix with another.
double b
Row 0, column 1 of the transformation matrix.
Definition: hdicoreTransformMatrix.h:37
virtual TransformMatrix & operator=(const TransformMatrix &rhs_)
Sets a target matrix to have the same values as another.
virtual double determinant() const
Gets the determinant of the target matrix.
virtual void concatScale(const double sx_, const double sy_)
Concatenates scale values to an existing matrix.
virtual void setIdentity()
Sets a TransformMatrix object's entries to that of an identity matrix.
double d
Row 1, column 1 of the transformation matrix.
Definition: hdicoreTransformMatrix.h:47
Allows for 2-dimensional transformations in a single application via matrix math. ...
Definition: hdicoreTransformMatrix.h:26
virtual bool operator==(const TransformMatrix &rhs_) const
Compares two matrices for equality.
virtual void setRotate(const Angle &angle_)
Sets the rotation values, about the origin, of a matrix.
virtual bool isIdentity() const
Gets whether a TransformMatrix currently has its entries set to that of an identity matrix...
virtual TransformMatrix operator*(const TransformMatrix &rhs_) const
Multiplies two matrices together.
virtual void concatRotate(const Angle &angle_)
Concatenates rotation values to an existing matrix.
double c
Row 1, column 0 of the transformation matrix.
Definition: hdicoreTransformMatrix.h:42
double tx
Stores the x-axis translation (offset) value.
Definition: hdicoreTransformMatrix.h:52
virtual bool invert(TransformMatrix &inverse__) const
Inverts a target matrix.
Definition: hdicoreaiArray.h:12
virtual bool degenerate() const
Gets whether the target matrix is degenerate.
virtual ~TransformMatrix()
TransformMatrix destructor.
double ty
Stores the y-axis translation (offset) value.
Definition: hdicoreTransformMatrix.h:57
virtual void setTranslate(const double tx_, const double ty_)
Sets the translation values of a matrix.
virtual void concat(const TransformMatrix &matrix2_)
Concatenates one matrix with another.
Describes an angle, and allows for easy conversion between various units.
Definition: hdicoreAngle.h:25