Vuo  2.0.0
VuoTransform2d.h
Go to the documentation of this file.
1 
10 #pragma once
11 
12 #include "VuoPoint2d.h"
13 #include "VuoPoint3d.h"
14 #include "VuoReal.h"
15 
27 typedef struct
28 {
29  VuoPoint2d translation;
31  VuoPoint2d scale;
33 
35 VuoTransform2d VuoTransform2d_make(VuoPoint2d translation, VuoReal rotation, VuoPoint2d scale);
36 // See VuoTransform.h for 2D-3D conversions.
37 
40 char * VuoTransform2d_getSummary(const VuoTransform2d value);
41 
42 VuoPoint2d VuoTransform2d_transform_VuoPoint2d(VuoTransform2d transform, VuoPoint2d point);
43 VuoPoint3d VuoTransform2d_transform_VuoPoint3d(VuoTransform2d transform, VuoPoint3d point);
44 
46 
50 char * VuoTransform2d_getString(const VuoTransform2d value);
54 
58 static inline bool VuoTransform2d_isIdentity(const VuoTransform2d transform)
59 {
60  const float tolerance = 0.00001f;
61  return fabs(transform.translation.x) < tolerance
62  && fabs(transform.translation.y) < tolerance
63  && fabs(transform.scale.x - 1.) < tolerance
64  && fabs(transform.scale.y - 1.) < tolerance
65  && fabs(transform.rotation) < tolerance;
66 }
67