mirror of
https://github.com/recp/cglm.git
synced 2025-10-04 01:00:46 +00:00
fix affine scale
This commit is contained in:
@@ -74,25 +74,23 @@ glm_translate_z(mat4 m, float to) {
|
|||||||
CGLM_INLINE
|
CGLM_INLINE
|
||||||
void
|
void
|
||||||
glm_scale_to(mat4 m, vec3 v, mat4 dest) {
|
glm_scale_to(mat4 m, vec3 v, mat4 dest) {
|
||||||
dest[0][0] = m[0][0] * v[0];
|
glm_vec_scale(m[0], v[0], dest[0]);
|
||||||
dest[1][1] = m[1][1] * v[1];
|
glm_vec_scale(m[1], v[1], dest[1]);
|
||||||
dest[2][2] = m[2][2] * v[2];
|
glm_vec_scale(m[2], v[2], dest[2]);
|
||||||
|
|
||||||
|
glm_vec_dup(m[3], dest[3]);
|
||||||
}
|
}
|
||||||
|
|
||||||
CGLM_INLINE
|
CGLM_INLINE
|
||||||
void
|
void
|
||||||
glm_scale(mat4 m, vec3 v) {
|
glm_scale(mat4 m, vec3 v) {
|
||||||
m[0][0] *= v[0];
|
glm_scale_to(m, v, m);
|
||||||
m[1][1] *= v[1];
|
|
||||||
m[2][2] *= v[2];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
CGLM_INLINE
|
CGLM_INLINE
|
||||||
void
|
void
|
||||||
glm_scale1(mat4 m, float s) {
|
glm_scale1(mat4 m, float s) {
|
||||||
m[0][0] *= s;
|
glm_scale_to(m, (vec3){s, s, s}, m);
|
||||||
m[1][1] *= s;
|
|
||||||
m[2][2] *= s;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
CGLM_INLINE
|
CGLM_INLINE
|
||||||
|
@@ -10,6 +10,23 @@
|
|||||||
|
|
||||||
#include "cglm.h"
|
#include "cglm.h"
|
||||||
|
|
||||||
|
CGLM_INLINE
|
||||||
|
void
|
||||||
|
glm_vec_dup(vec3 a, vec3 dest) {
|
||||||
|
dest[0] = a[0];
|
||||||
|
dest[1] = a[1];
|
||||||
|
dest[2] = a[2];
|
||||||
|
}
|
||||||
|
|
||||||
|
CGLM_INLINE
|
||||||
|
void
|
||||||
|
glm_vec_dup4(vec4 a, vec4 dest) {
|
||||||
|
dest[0] = a[0];
|
||||||
|
dest[1] = a[1];
|
||||||
|
dest[2] = a[2];
|
||||||
|
dest[3] = a[3];
|
||||||
|
}
|
||||||
|
|
||||||
CGLM_INLINE
|
CGLM_INLINE
|
||||||
float
|
float
|
||||||
glm_vec_dot(vec3 a, vec3 b) {
|
glm_vec_dot(vec3 a, vec3 b) {
|
||||||
|
Reference in New Issue
Block a user