Files
cglm/docs/source/vec4.rst
Recep Aslantas 0e63c245d4 update docs
2018-04-11 12:34:20 +03:00

243 lines
5.8 KiB
ReStructuredText

.. default-domain:: C
vec4
====
Header: cglm/vec4.h
Table of contents (click to go):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Macros:
1. glm_vec4_dup3(v, dest)
#. glm_vec4_dup(v, dest)
#. GLM_VEC4_ONE_INIT
#. GLM_VEC4_BLACK_INIT
#. GLM_VEC4_ZERO_INIT
#. GLM_VEC4_ONE
#. GLM_VEC4_BLACK
#. GLM_VEC4_ZERO
Functions:
1. :c:func:`glm_vec4`
#. :c:func:`glm_vec4_copy3`
#. :c:func:`glm_vec4_copy`
#. :c:func:`glm_vec4_dot`
#. :c:func:`glm_vec4_norm2`
#. :c:func:`glm_vec4_norm`
#. :c:func:`glm_vec4_add`
#. :c:func:`glm_vec4_sub`
#. :c:func:`glm_vec4_scale`
#. :c:func:`glm_vec4_scale_as`
#. :c:func:`glm_vec4_flipsign`
#. :c:func:`glm_vec_flipsign_to`
#. :c:func:`glm_vec4_inv`
#. :c:func:`glm_vec4_inv_to`
#. :c:func:`glm_vec4_normalize`
#. :c:func:`glm_vec4_normalize_to`
#. :c:func:`glm_vec4_distance`
#. :c:func:`glm_vec4_maxv`
#. :c:func:`glm_vec4_minv`
#. :c:func:`glm_vec4_clamp`
#. :c:func:`glm_vec4_lerp`
#. :c:func:`glm_vec4_isnan`
#. :c:func:`glm_vec4_isinf`
#. :c:func:`glm_vec4_isvalid`
#. :c:func:`glm_vec4_sign`
#. :c:func:`glm_vec4_sqrt`
Functions documentation
~~~~~~~~~~~~~~~~~~~~~~~
.. c:function:: void glm_vec4(vec3 v3, float last, vec4 dest)
init vec4 using vec3, since you are initializing vec4 with vec3
you need to set last item. cglm could set it zero but making it parameter
gives more control
Parameters:
| *[in]* **v3** vector4
| *[in]* **last** last item of vec4
| *[out]* **dest** destination
.. c:function:: void glm_vec4_copy3(vec4 a, vec3 dest)
copy first 3 members of [a] to [dest]
Parameters:
| *[in]* **a** source
| *[out]* **dest** destination
.. c:function:: void glm_vec4_copy(vec4 v, vec4 dest)
copy all members of [a] to [dest]
Parameters:
| *[in]* **v** source
| *[in]* **dest** destination
.. c:function:: float glm_vec4_dot(vec4 a, vec4 b)
dot product of vec4
Parameters:
| *[in]* **a** vector1
| *[in]* **b** vector2
Returns:
dot product
.. c:function:: float glm_vec4_norm2(vec4 v)
norm * norm (magnitude) of vector
we can use this func instead of calling norm * norm, because it would call
sqrtf fuction twice but with this func we can avoid func call, maybe this is
not good name for this func
Parameters:
| *[in]* **v** vector
Returns:
square of norm / magnitude
.. c:function:: float glm_vec4_norm(vec4 vec)
norm (magnitude) of vec4
Parameters:
| *[in]* **vec** vector
.. c:function:: void glm_vec4_add(vec4 v1, vec4 v2, vec4 dest)
add v2 vector to v1 vector store result in dest
Parameters:
| *[in]* **v1** vector1
| *[in]* **v2** vector2
| *[out]* **dest** destination vector
.. c:function:: void glm_vec4_sub(vec4 v1, vec4 v2, vec4 dest)
subtract v2 vector from v1 vector store result in dest
Parameters:
| *[in]* **v1** vector1
| *[in]* **v2** vector2
| *[out]* **dest** destination vector
.. c:function:: void glm_vec4_scale(vec4 v, float s, vec4 dest)
multiply/scale vec4 vector with scalar: result = v * s
Parameters:
| *[in]* **v** vector
| *[in]* **s** scalar
| *[out]* **dest** destination vector
.. c:function:: void glm_vec4_scale_as(vec4 v, float s, vec4 dest)
make vec4 vector scale as specified: result = unit(v) * s
Parameters:
| *[in]* **v** vector
| *[in]* **s** scalar
| *[out]* **dest** destination vector
.. c:function:: void glm_vec4_flipsign(vec4 v)
flip sign of all vec4 members
Parameters:
| *[in, out]* **v** vector
.. c:function:: void glm_vec4_flipsign_to(vec4 v, vec4 dest)
flip sign of all vec4 members and store result in dest
Parameters:
| *[in]* **v** vector
| *[out]* **dest** negated vector
.. c:function:: void glm_vec4_inv(vec4 v)
make vector as inverse/opposite of itself
Parameters:
| *[in, out]* **v** vector
.. c:function:: void glm_vec4_inv_to(vec4 v, vec4 dest)
inverse/opposite vector
Parameters:
| *[in]* **v** source
| *[out]* **dest** destination
.. c:function:: void glm_vec4_normalize(vec4 v)
normalize vec4 and store result in same vec
Parameters:
| *[in, out]* **v** vector
.. c:function:: void glm_vec4_normalize_to(vec4 vec, vec4 dest)
normalize vec4 to dest
Parameters:
| *[in]* **vec** source
| *[out]* **dest** destination
.. c:function:: float glm_vec4_distance(vec4 v1, vec4 v2)
distance between two vectors
Parameters:
| *[in]* **mat** vector1
| *[in]* **row1** vector2
Returns:
| distance
.. c:function:: void glm_vec4_maxv(vec4 v1, vec4 v2, vec4 dest)
max values of vectors
Parameters:
| *[in]* **v1** vector1
| *[in]* **v2** vector2
| *[out]* **dest** destination
.. c:function:: void glm_vec4_minv(vec4 v1, vec4 v2, vec4 dest)
min values of vectors
Parameters:
| *[in]* **v1** vector1
| *[in]* **v2** vector2
| *[out]* **dest** destination
.. c:function:: void glm_vec4_clamp(vec4 v, float minVal, float maxVal)
constrain a value to lie between two further values
Parameters:
| *[in, out]* **v** vector
| *[in]* **minVal** minimum value
| *[in]* **maxVal** maximum value
.. c:function:: void glm_vec4_lerp(vec4 from, vec4 to, float t, vec4 dest)
linear interpolation between two vector
| formula: from + s * (to - from)
Parameters:
| *[in]* **from** from value
| *[in]* **to** to value
| *[in]* **t** interpolant (amount) clamped between 0 and 1
| *[out]* **dest** destination