vec: add some new functions for vector

* _mul: multiply two vector (replacement for _mulv)
* _div: div two vector
* _divs: div vector with scalar
* adds: add scalar to each components of vec
* subs: sub scalar from each components of vec
This commit is contained in:
Recep Aslantas
2018-04-13 15:12:56 +03:00
parent af5a2627b4
commit d841f8809d
12 changed files with 510 additions and 72 deletions

View File

@@ -9,7 +9,7 @@
void
test_vec3(void **state) {
vec3 v;
vec3 v, v1;
/* test zero */
glm_vec_zero(v);
@@ -18,4 +18,35 @@ test_vec3(void **state) {
/* test one */
glm_vec_one(v);
test_assert_vec3_eq(GLM_VEC3_ONE, v);
/* adds, subs, div, divs, mul */
glm_vec_add(v, GLM_VEC3_ONE, v);
assert_true(glmc_vec_eq_eps(v, 2));
glm_vec_adds(v, 10, v);
assert_true(glmc_vec_eq_eps(v, 12));
glm_vec_sub(v, GLM_VEC3_ONE, v);
assert_true(glmc_vec_eq_eps(v, 11));
glm_vec_subs(v, 1, v);
assert_true(glmc_vec_eq_eps(v, 10));
glm_vec_broadcast(2, v1);
glm_vec_div(v, v1, v);
assert_true(glmc_vec_eq_eps(v, 5));
glm_vec_divs(v, 0.5, v);
assert_true(glmc_vec_eq_eps(v, 10));
glm_vec_mul(v, v1, v);
assert_true(glmc_vec_eq_eps(v, 20));
glm_vec_scale(v, 0.5, v);
assert_true(glmc_vec_eq_eps(v, 10));
glm_vec_normalize_to(v, v1);
glm_vec_scale(v1, 0.8, v1);
glm_vec_scale_as(v, 0.8, v);
test_assert_vec3_eq(v1, v);
}

View File

@@ -78,4 +78,35 @@ test_vec4(void **state) {
/* test one */
glm_vec4_one(v);
test_assert_vec4_eq(GLM_VEC4_ONE, v);
/* adds, subs, div, divs, mul */
glm_vec4_add(v, GLM_VEC4_ONE, v);
assert_true(glmc_vec4_eq_eps(v, 2));
glm_vec4_adds(v, 10, v);
assert_true(glmc_vec4_eq_eps(v, 12));
glm_vec4_sub(v, GLM_VEC4_ONE, v);
assert_true(glmc_vec4_eq_eps(v, 11));
glm_vec4_subs(v, 1, v);
assert_true(glmc_vec4_eq_eps(v, 10));
glm_vec4_broadcast(2, v1);
glm_vec4_div(v, v1, v);
assert_true(glmc_vec4_eq_eps(v, 5));
glm_vec4_divs(v, 0.5, v);
assert_true(glmc_vec4_eq_eps(v, 10));
glm_vec4_mul(v, v1, v);
assert_true(glmc_vec4_eq_eps(v, 20));
glm_vec4_scale(v, 0.5, v);
assert_true(glmc_vec4_eq_eps(v, 10));
glm_vec4_normalize_to(v, v1);
glm_vec4_scale(v1, 0.8, v1);
glm_vec4_scale_as(v, 0.8, v);
test_assert_vec4_eq(v1, v);
}