vector [pure] documentation

This commit is contained in:
Recep Aslantas
2016-09-29 10:25:33 +03:00
parent 1ab4329013
commit ea6f12d90a
2 changed files with 120 additions and 2 deletions

View File

@@ -182,7 +182,7 @@ glm_mat4_transpose_to(mat4 m, mat4 dest) {
}
/*!
* @brief tranpose mat4 and store result at same matrix
* @brief tranpose mat4 and store result in same matrix
*
* @param[in, out] m source and dest
*/

View File

@@ -5,6 +5,11 @@
* Full license can be found in the LICENSE file
*/
/*!
* vec3 functions dont have suffix e.g glm_vec_dot (not glm_vec3_dot)
* all functions without suffix are vec3 functions
*/
#ifndef cglm_vec_h
#define cglm_vec_h
@@ -12,6 +17,12 @@
#include "cglm-intrin.h"
#include <math.h>
/*!
* @brief copy all members of [a] to [dest]
*
* @param[in] a source
* @param[out] dest destination
*/
CGLM_INLINE
void
glm_vec_dup(vec3 a, vec3 dest) {
@@ -20,6 +31,12 @@ glm_vec_dup(vec3 a, vec3 dest) {
dest[2] = a[2];
}
/*!
* @brief copy first 3 members of [a] to [dest]
*
* @param[in] a source
* @param[out] dest destination
*/
void
glm_vec4_dup3(vec4 a, vec3 dest) {
dest[0] = a[0];
@@ -27,6 +44,12 @@ glm_vec4_dup3(vec4 a, vec3 dest) {
dest[2] = a[2];
}
/*!
* @brief copy all members of [a] to [dest]
*
* @param[in] a source
* @param[out] dest destination
*/
CGLM_INLINE
void
glm_vec4_dup(vec4 v, vec4 dest) {
@@ -40,18 +63,41 @@ glm_vec4_dup(vec4 v, vec4 dest) {
#endif
}
/*!
* @brief vec3 dot product
*
* @param[in] a
* @param[in] b
*
* @return dot product
*/
CGLM_INLINE
float
glm_vec_dot(vec3 a, vec3 b) {
return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
}
/*!
* @brief vec4 dot product
*
* @param[in] a
* @param[in] b
*
* @return dot product
*/
CGLM_INLINE
float
glm_vec4_dot(vec4 a, vec4 b) {
return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];
}
/*!
* @brief vec3 cross product
*
* @param[in] a source 1
* @param[in] b source 2
* @param[out] d destination
*/
CGLM_INLINE
void
glm_vec_cross(vec3 a, vec3 b, vec3 d) {
@@ -61,19 +107,39 @@ glm_vec_cross(vec3 a, vec3 b, vec3 d) {
d[2] = a[0] * b[1] - a[1] * b[0];
}
/*!
* @brief norm (magnitude) of vec3
*
* @param[in] vec
*
* @return norm
*/
CGLM_INLINE
float
glm_vec_norm(vec3 vec) {
return sqrtf(vec[0] * vec[0] + vec[1] * vec[1] + vec[2] * vec[2]);
}
/*!
* @brief norm (magnitude) of vec4
*
* @param[in] vec
*
* @return norm
*/
CGLM_INLINE
float
glm_vec4_norm(vec3 vec) {
glm_vec4_norm(vec4 vec) {
return sqrtf(vec[0] * vec[0] + vec[1] * vec[1]
+ vec[2] * vec[2] + vec[3] * vec[3]);
}
/*!
* @brief normalize vec3 to dest
*
* @param[in] vec source
* @param[out] dest destination
*/
CGLM_INLINE
void
glm_vec_normalize_to(vec3 vec, vec3 dest) {
@@ -91,6 +157,11 @@ glm_vec_normalize_to(vec3 vec, vec3 dest) {
dest[2] = vec[2] / norm;
}
/*!
* @brief normalize vec3 and store result in same vec
*
* @param[in, out] v vector
*/
CGLM_INLINE
void
glm_vec_normalize(vec3 v) {
@@ -108,6 +179,11 @@ glm_vec_normalize(vec3 v) {
v[2] = v[2] / norm;
}
/*!
* @brief normalize vec4 and store result in same vec
*
* @param[in, out] v vector
*/
CGLM_INLINE
void
glm_vec4_normalize(vec4 v) {
@@ -126,6 +202,13 @@ glm_vec4_normalize(vec4 v) {
v[3] = v[3] / norm;
}
/*!
* @brief add v2 vector to v1 vector store result in dest
*
* @param[in] v1
* @param[in] v2
* @param[out] dest destination vector
*/
CGLM_INLINE
void
glm_vec_add(vec3 v1, vec3 v2, vec3 dest) {
@@ -134,6 +217,13 @@ glm_vec_add(vec3 v1, vec3 v2, vec3 dest) {
dest[2] = v1[2] + v2[2];
}
/*!
* @brief add v2 vector to v1 vector store result in dest
*
* @param[in] v1
* @param[in] v2
* @param[out] dest destination vector
*/
CGLM_INLINE
void
glm_vec4_add(vec4 v1, vec4 v2, vec4 dest) {
@@ -149,6 +239,13 @@ glm_vec4_add(vec4 v1, vec4 v2, vec4 dest) {
#endif
}
/*!
* @brief subtract v2 vector from v1 vector store result in dest
*
* @param[in] v1
* @param[in] v2
* @param[out] dest destination vector
*/
CGLM_INLINE
void
glm_vec_sub(vec3 v1, vec3 v2, vec3 dest) {
@@ -157,6 +254,13 @@ glm_vec_sub(vec3 v1, vec3 v2, vec3 dest) {
dest[2] = v1[2] - v2[2];
}
/*!
* @brief subtract v2 vector from v1 vector store result in dest
*
* @param[in] v1
* @param[in] v2
* @param[out] dest destination vector
*/
CGLM_INLINE
void
glm_vec4_sub(vec4 v1, vec4 v2, vec4 dest) {
@@ -172,6 +276,13 @@ glm_vec4_sub(vec4 v1, vec4 v2, vec4 dest) {
#endif
}
/*!
* @brief multiply vec3 vector with scalar
*
* @param[in] v vector
* @param[in] s scalar
* @param[out] dest destination vector
*/
CGLM_INLINE
void
glm_vec_scale(vec3 v, float s, vec3 dest) {
@@ -180,6 +291,13 @@ glm_vec_scale(vec3 v, float s, vec3 dest) {
dest[2] = v[2] * s;
}
/*!
* @brief multiply vec4 vector with scalar
*
* @param[in] v vector
* @param[in] s scalar
* @param[out] dest destination vector
*/
CGLM_INLINE
void
glm_vec4_scale(vec4 v, float s, vec4 dest) {