From 9bf6f14a8a59195fe9be004aaff446c51474fc5d Mon Sep 17 00:00:00 2001 From: "perepelits.m" Date: Wed, 17 Jun 2015 16:15:36 +0200 Subject: [PATCH] eina: add eina_quaternion_set Reviewers: cedric, raster, Hermet Subscribers: cedric, artem.popov Differential Revision: https://phab.enlightenment.org/D2717 Signed-off-by: Cedric BAIL --- src/lib/eina/eina_quaternion.c | 21 +++++++++++++++++++++ src/lib/eina/eina_quaternion.h | 5 +++++ 2 files changed, 26 insertions(+) diff --git a/src/lib/eina/eina_quaternion.c b/src/lib/eina/eina_quaternion.c index 2ef0edec01..8c751ac456 100644 --- a/src/lib/eina/eina_quaternion.c +++ b/src/lib/eina/eina_quaternion.c @@ -28,6 +28,17 @@ #include "eina_matrix.h" #include "eina_quaternion.h" +EAPI void +eina_quaternion_f16p16_set(Eina_Quaternion *out, + Eina_F16p16 x, Eina_F16p16 y, + Eina_F16p16 z, Eina_F16p16 w) +{ + out->w = w; + out->x = x; + out->y = y; + out->z = z; +} + EAPI Eina_F16p16 eina_quaternion_f16p16_norm(const Eina_Quaternion_F16p16 *q) { @@ -338,6 +349,16 @@ eina_quaternion_f16p16_rotation_matrix3_get(Eina_Matrix3_F16p16 *m, eina_f16p16_add(xx, yy)); } +EAPI void +eina_quaternion_set(Eina_Quaternion *out, double x, + double y, double z, double w) +{ + out->w = w; + out->x = x; + out->y = y; + out->z = z; +} + EAPI double eina_quaternion_norm(const Eina_Quaternion *q) { diff --git a/src/lib/eina/eina_quaternion.h b/src/lib/eina/eina_quaternion.h index 7191c96f43..42d3cfe60b 100644 --- a/src/lib/eina/eina_quaternion.h +++ b/src/lib/eina/eina_quaternion.h @@ -53,6 +53,9 @@ struct _Eina_Point_3D_F16p16 Eina_F16p16 z; }; +EAPI void eina_quaternion_f16p16_set(Eina_Quaternion *out, + Eina_F16p16 x, Eina_F16p16 y, + Eina_F16p16 z, Eina_F16p16 w); EAPI Eina_F16p16 eina_quaternion_f16p16_norm(const Eina_Quaternion_F16p16 *q); EAPI void eina_quaternion_f16p16_negative(Eina_Quaternion_F16p16 *out, const Eina_Quaternion_F16p16 *in); @@ -87,6 +90,8 @@ EAPI void eina_quaternion_f16p16_rotate(Eina_Point_3D_F16p16 *p, EAPI void eina_quaternion_f16p16_rotation_matri3_get(Eina_Matrix3_F16p16 *m, const Eina_Quaternion_F16p16 *q); +EAPI void eina_quaternion_set(Eina_Quaternion *q, double x, + double y, double z, double w); EAPI double eina_quaternion_norm(const Eina_Quaternion *q); EAPI void eina_quaternion_negative(Eina_Quaternion *out, const Eina_Quaternion *in);