Hot Door CORE  0.7.1
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__
double a
Row 0, column 0 of the transformation matrix.
Definition: hdicoreTransformMatrix.h:32
double b
Row 0, column 1 of the transformation matrix.
Definition: hdicoreTransformMatrix.h:37
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
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
Definition: hdicoreaiArray.h:12
double ty
Stores the y-axis translation (offset) value.
Definition: hdicoreTransformMatrix.h:57
hdi::core::Angle operator*(const double lhs_, const hdi::core::Angle &rhs_)
Allows a constant to be multipled by an Angle object.
Describes an angle, and allows for easy conversion between various units.
Definition: hdicoreAngle.h:25