aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author3gg <3gg@shellblade.net>2024-09-16 19:56:05 -0700
committer3gg <3gg@shellblade.net>2024-09-16 19:56:05 -0700
commit5de20c1670ed7116143ab704919800d8ae1bed4d (patch)
treeab4af71f20fdbe15c9383ad074d08bef2eb49a68
parent3bdd70261a5b77609f31cc2262e2fa511370dd8d (diff)
Add function for global Y-axis rotation.HEADmain
-rw-r--r--include/math/spatial3.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/math/spatial3.h b/include/math/spatial3.h
index 9065972..49e5615 100644
--- a/include/math/spatial3.h
+++ b/include/math/spatial3.h
@@ -107,6 +107,11 @@ static inline void spatial3_roll(Spatial3* spatial, const R angle) {
107 spatial->r = vec3_normalize(vec3_cross(spatial->f, spatial->u)); 107 spatial->r = vec3_normalize(vec3_cross(spatial->f, spatial->u));
108} 108}
109 109
110/// Rotate the spatial about the global Y axis.
111static inline void spatial3_global_yaw(Spatial3* spatial, const R angle) {
112 spatial3_rotate(spatial, up3(), angle);
113}
114
110/// Set the spatial's transformation matrix. 115/// Set the spatial's transformation matrix.
111static inline void spatial3_set_transform(Spatial3* spatial, mat4 transform) { 116static inline void spatial3_set_transform(Spatial3* spatial, mat4 transform) {
112 spatial->r = mat4_v0(transform); 117 spatial->r = mat4_v0(transform);
@@ -115,6 +120,7 @@ static inline void spatial3_set_transform(Spatial3* spatial, mat4 transform) {
115 spatial->p = mat4_v3(transform); 120 spatial->p = mat4_v3(transform);
116} 121}
117 122
123/// Set the spatial's forward vector.
118static inline void spatial3_set_forward(Spatial3* spatial, vec3 forward) { 124static inline void spatial3_set_forward(Spatial3* spatial, vec3 forward) {
119 spatial->f = vec3_normalize(forward); 125 spatial->f = vec3_normalize(forward);
120 // Use aux vector to define right vector orthogonal to forward. 126 // Use aux vector to define right vector orthogonal to forward.