36 #ifndef __CU_AFFINE2_H__ 
   37 #define __CU_AFFINE2_H__ 
   41 #include "CUMathBase.h" 
   79 #pragma mark Constructors 
   99     Affine2(
float m11, 
float m12, 
float m21, 
float m22, 
float tx, 
float ty);
 
  136 #pragma mark Static Constructors 
  301         memcpy(this->m, mat.m, 
sizeof(
float)*4);
 
  302         this->offset = mat.offset;
 
  336     Affine2& 
set(
float m11, 
float m12, 
float m21, 
float m22, 
float tx, 
float ty);
 
  379 #pragma mark Static Arithmetic 
  448 #pragma mark Arithmetic 
  459         return *(
add(*
this,v,
this));
 
  485         return *(
multiply(*
this,scalar,
this));
 
  512         return *(
invert(*
this,
this));
 
  531 #pragma mark Operators 
  542         return *(
add(*
this,v,
this));
 
  568         return *(
multiply(*
this,scalar,
this));
 
  599         return *(
add(*
this,v,&result));
 
  615         return *(
subtract(*
this,v,&result));
 
  631         return *(
multiply(*
this,scalar,&result));
 
  650         return *(
multiply(*
this,aff,&result));
 
  655 #pragma mark Comparisons 
  679     bool equals(
const Affine2& mat, 
float variance=CU_MATH_EPSILON) 
const;
 
  711 #pragma mark Affine Attributes 
  747         return m[0]*m[3]-m[2]*m[1];
 
  766         decompose(*
this,&result,
nullptr,
nullptr);
 
  780         decompose(*
this,
nullptr,&result,
nullptr);
 
  795         decompose(*
this,
nullptr,
nullptr,&result);
 
  800 #pragma mark Vector Operations 
  838         return *(
transform(*
this,point,&result));
 
  858 #pragma mark Static Transform Manipulation 
 1004 #pragma mark Matrix Transforms 
 1018         return *(
rotate(*
this,angle,
this));
 
 1032         return *(
scale(*
this,value,
this));
 
 1046         return *(
scale(*
this,s,
this));
 
 1061         return *(
scale(*
this,sx,sy,
this));
 
 1095 #pragma mark Conversion Methods 
 1106     std::string 
toString(
bool verbose = 
false) 
const;
 
 1112     operator Mat4() 
const;
 
 1153 #pragma mark Vector Operations 
static Affine2 * multiply(const Affine2 &mat, float scalar, Affine2 *dst)
 
float getDeterminant() const 
Definition: CUAffine2.h:746
 
Affine2 & subtract(const Vec2 &v)
Definition: CUAffine2.h:471
 
~Affine2()
Definition: CUAffine2.h:132
 
Vec2 & operator*=(Vec2 &v, const Affine2 &m)
Definition: CUAffine2.h:1165
 
Affine2 & translate(float tx, float ty)
Definition: CUAffine2.h:1089
 
std::string toString(bool verbose=false) const 
 
Vec2 transform(const Vec2 &point) const 
Definition: CUAffine2.h:836
 
static Affine2 * translate(const Affine2 &aff, float tx, float ty, Affine2 *dst)
Definition: CUAffine2.h:970
 
Affine2 & rotate(float angle)
Definition: CUAffine2.h:1017
 
Affine2 & operator=(const float *array)
Definition: CUAffine2.h:320
 
Affine2 & scale(float sx, float sy)
Definition: CUAffine2.h:1060
 
Definition: CUAffine2.h:63
 
Affine2 & multiply(const Affine2 &aff)
Definition: CUAffine2.h:499
 
const Affine2 operator*(const Affine2 &aff) const 
Definition: CUAffine2.h:648
 
bool operator==(const Affine2 &aff) const 
Definition: CUAffine2.h:692
 
static const Affine2 ZERO
Definition: CUAffine2.h:72
 
static Affine2 * scale(const Affine2 &aff, float value, Affine2 *dst)
Definition: CUAffine2.h:892
 
const Affine2 operator+(const Vec2 &v) const 
Definition: CUAffine2.h:597
 
Affine2 & translate(const Vec2 &t)
Definition: CUAffine2.h:1074
 
Affine2 & operator*=(const Affine2 &aff)
Definition: CUAffine2.h:582
 
bool isExactly(const Affine2 &aff) const 
 
Affine2 getInverse() const 
Definition: CUAffine2.h:524
 
static Affine2 createRotation(float angle)
Definition: CUAffine2.h:215
 
Affine2 & operator-=(const Vec2 &v)
Definition: CUAffine2.h:554
 
static Affine2 * translate(const Affine2 &aff, const Vec2 &t, Affine2 *dst)
Definition: CUAffine2.h:950
 
bool isInvertible(float variance=CU_MATH_EPSILON) const 
Definition: CUAffine2.h:734
 
Affine2 & operator=(Affine2 &&mat)
Definition: CUAffine2.h:300
 
static Affine2 createScale(float sx, float sy)
Definition: CUAffine2.h:167
 
static Affine2 * rotate(const Affine2 &aff, float angle, Affine2 *dst)
Definition: CUAffine2.h:873
 
const Affine2 operator*(float scalar) const 
Definition: CUAffine2.h:629
 
static Vec2 * transform(const Affine2 &aff, const Vec2 &point, Vec2 *dst)
 
static Affine2 createTranslation(const Vec2 &trans)
Definition: CUAffine2.h:240
 
Affine2 & scale(const Vec2 &s)
Definition: CUAffine2.h:1045
 
bool equals(const Affine2 &mat, float variance=CU_MATH_EPSILON) const 
 
float m[4]
Definition: CUAffine2.h:67
 
Affine2 & invert()
Definition: CUAffine2.h:511
 
Affine2 & operator+=(const Vec2 &v)
Definition: CUAffine2.h:541
 
Vec2 offset
Definition: CUAffine2.h:69
 
Affine2 & operator*=(float scalar)
Definition: CUAffine2.h:567
 
static const Affine2 IDENTITY
Definition: CUAffine2.h:76
 
Vec2 getScale() const 
Definition: CUAffine2.h:764
 
Vec2 getTranslation() const 
Definition: CUAffine2.h:793
 
static bool decompose(const Affine2 &mat, Vec2 *scale, float *rot, Vec2 *trans)
 
static Affine2 * scale(const Affine2 &aff, const Vec2 &s, Affine2 *dst)
Definition: CUAffine2.h:911
 
Affine2 & add(const Vec2 &v)
Definition: CUAffine2.h:458
 
Affine2 & set(float m11, float m12, float m21, float m22, float tx, float ty)
 
static Affine2 createTranslation(float tx, float ty)
Definition: CUAffine2.h:263
 
int operator*(Font::Style value)
Definition: CUFont.h:1503
 
static Affine2 * subtract(const Affine2 &m1, const Vec2 &v, Affine2 *dst)
 
static const Affine2 ONE
Definition: CUAffine2.h:74
 
static Affine2 createScale(float scale)
Definition: CUAffine2.h:144
 
Affine2 & scale(float value)
Definition: CUAffine2.h:1031
 
static Affine2 * add(const Affine2 &m, const Vec2 &v, Affine2 *dst)
 
bool operator!=(const Affine2 &aff) const 
Definition: CUAffine2.h:706
 
static Affine2 * scale(const Affine2 &aff, float sx, float sy, Affine2 *dst)
Definition: CUAffine2.h:931
 
Affine2 & operator=(const Affine2 &mat)
Definition: CUAffine2.h:289
 
Definition: CUAction.h:51
 
static Affine2 createScale(const Vec2 &scale)
Definition: CUAffine2.h:190
 
Affine2 & multiply(float scalar)
Definition: CUAffine2.h:484
 
bool isIdentity(float variance=0.0f) const 
 
float getRotation() const 
Definition: CUAffine2.h:778
 
const Affine2 operator-(const Vec2 &v) const 
Definition: CUAffine2.h:613