[vlc-devel] [PATCH 01/18] viewpoint: add euler conversion operations

Alexandre Janniaux ajanni at videolabs.io
Wed Mar 31 09:25:33 UTC 2021


---
 include/vlc_viewpoint.h |  6 ++++++
 src/misc/viewpoint.c    | 16 ++++++++++++++++
 2 files changed, 22 insertions(+)

diff --git a/include/vlc_viewpoint.h b/include/vlc_viewpoint.h
index 86528f4ef8..2c21e1873f 100644
--- a/include/vlc_viewpoint.h
+++ b/include/vlc_viewpoint.h
@@ -71,4 +71,10 @@ static inline void vlc_viewpoint_clip( vlc_viewpoint_t *p_vp )
 VLC_API
 void vlc_viewpoint_to_4x4( const vlc_viewpoint_t *vp, float *matrix );
 
+void vlc_viewpoint_from_euler( vlc_viewpoint_t *vp,
+                               float yaw, float pitch, float roll );
+
+void vlc_viewpoint_to_euler( const vlc_viewpoint_t *vp,
+                             float *yaw, float *pitch, float *roll );
+
 #endif /* VLC_VIEWPOINT_H_ */
diff --git a/src/misc/viewpoint.c b/src/misc/viewpoint.c
index 6d5aeaf2bd..4975e6c9a5 100644
--- a/src/misc/viewpoint.c
+++ b/src/misc/viewpoint.c
@@ -69,3 +69,19 @@ void vlc_viewpoint_to_4x4( const vlc_viewpoint_t *vp, float *m )
                 for (int l=0; l<4; ++l)
                     m[4*i+l] += y_rot[i][j] * x_rot[j][k] * z_rot[k][l];
 }
+
+void vlc_viewpoint_from_euler(vlc_viewpoint_t *vp,
+                              float yaw, float pitch, float roll)
+{
+    vp->yaw   = yaw;
+    vp->pitch = pitch;
+    vp->roll  = roll;
+}
+
+void vlc_viewpoint_to_euler(const vlc_viewpoint_t *vp,
+                            float *yaw, float *pitch, float *roll)
+{
+    *yaw   = vp->yaw;
+    *pitch = vp->pitch;
+    *roll  = vp->roll;
+}
-- 
2.31.0



More information about the vlc-devel mailing list