Vuo 2.4.4
Loading...
Searching...
No Matches
VuoTransform2d.h
Go to the documentation of this file.
1
10#ifndef VuoTransform2d_h
11#define VuoTransform2d_h
12
13#ifdef __cplusplus
14extern "C" {
15#endif
16
17#include "VuoPoint2d.h"
18#include "VuoPoint3d.h"
19#include "VuoReal.h"
20
32typedef struct
33{
34 VuoPoint2d translation;
36 VuoPoint2d scale;
38
40VuoTransform2d VuoTransform2d_make(VuoPoint2d translation, VuoReal rotation, VuoPoint2d scale);
41// See VuoTransform.h for 2D-3D conversions.
42
43VuoTransform2d VuoTransform2d_makeFromJson(struct json_object *js);
44struct json_object * VuoTransform2d_getJson(const VuoTransform2d value);
46
47VuoPoint2d VuoTransform2d_transform_VuoPoint2d(VuoTransform2d transform, VuoPoint2d point);
48VuoPoint3d VuoTransform2d_transform_VuoPoint3d(VuoTransform2d transform, VuoPoint3d point);
49
51
58
62static inline bool VuoTransform2d_isIdentity(const VuoTransform2d transform)
63{
64 const float tolerance = 0.00001f;
65 return fabs(transform.translation.x) < tolerance
66 && fabs(transform.translation.y) < tolerance
67 && fabs(transform.scale.x - 1.) < tolerance
68 && fabs(transform.scale.y - 1.) < tolerance
69 && fabs(transform.rotation) < tolerance;
70}
71
76#ifdef __cplusplus
77}
78#endif
79
80#endif