.. default-domain:: C utils / helpers ================================================================================ Header: cglm/util.h Table of contents (click to go): ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Functions: 1. :c:func:`glm_sign` #. :c:func:`glm_signf` #. :c:func:`glm_rad` #. :c:func:`glm_deg` #. :c:func:`glm_make_rad` #. :c:func:`glm_make_deg` #. :c:func:`glm_pow2` #. :c:func:`glm_min` #. :c:func:`glm_max` #. :c:func:`glm_clamp` #. :c:func:`glm_lerp` #. :c:func:`glm_swapf` Functions documentation ~~~~~~~~~~~~~~~~~~~~~~~ .. c:function:: int glm_sign(int val) | returns sign of 32 bit integer as +1, -1, 0 | **Important**: It returns 0 for zero input Parameters: | *[in]* **val** an integer Returns: sign of given number .. c:function:: float glm_signf(float val) | returns sign of 32 bit integer as +1.0, -1.0, 0.0 | **Important**: It returns 0.0f for zero input Parameters: | *[in]* **val** a float Returns: sign of given number .. c:function:: float glm_rad(float deg) | convert degree to radians Parameters: | *[in]* **deg** angle in degrees .. c:function:: float glm_deg(float rad) | convert radians to degree Parameters: | *[in]* **rad** angle in radians .. c:function:: void glm_make_rad(float *degm) | convert existing degree to radians. this will override degrees value Parameters: | *[in, out]* **deg** pointer to angle in degrees .. c:function:: void glm_make_deg(float *rad) | convert existing radians to degree. this will override radians value Parameters: | *[in, out]* **rad** pointer to angle in radians .. c:function:: float glm_pow2(float x) | multiplies given parameter with itself = x * x or powf(x, 2) Parameters: | *[in]* **x** value Returns: square of a given number .. c:function:: float glm_min(float a, float b) | returns minimum of given two values Parameters: | *[in]* **a** number 1 | *[in]* **b** number 2 Returns: minimum value .. c:function:: float glm_max(float a, float b) | returns maximum of given two values Parameters: | *[in]* **a** number 1 | *[in]* **b** number 2 Returns: maximum value .. c:function:: void glm_clamp(float val, float minVal, float maxVal) constrain a value to lie between two further values Parameters: | *[in]* **val** input value | *[in]* **minVal** minimum value | *[in]* **maxVal** maximum value Returns: clamped value .. c:function:: float glm_lerp(float from, float to, float t) linear interpolation between two number | formula: from + s * (to - from) Parameters: | *[in]* **from** from value | *[in]* **to** to value | *[in]* **t** interpolant (amount) clamped between 0 and 1 Returns: interpolated value .. c:function:: bool glm_eq(float a, float b) check if two float equal with using EPSILON Parameters: | *[in]* **a** a | *[in]* **b** b Returns: true if a and b are equal .. c:function:: float glm_percent(float from, float to, float current) percentage of current value between start and end value Parameters: | *[in]* **from** from value | *[in]* **to** to value | *[in]* **current** value between from and to values Returns: percentage of current value .. c:function:: float glm_percentc(float from, float to, float current) clamped percentage of current value between start and end value Parameters: | *[in]* **from** from value | *[in]* **to** to value | *[in]* **current** value between from and to values Returns: clamped normalized percent (0-100 in 0-1) .. c:function:: void glm_swapf(float *a, float *b) swap two float values Parameters: | *[in]* **a** float 1 | *[in]* **b** float 2