| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253 | 2-Component Vector==================.. code:: cpp   #include <graphics/vec2.h>.. type:: struct vec2   Two component vector structure... member:: float vec2.x   X component.. member:: float vec2.y   Y component.. member:: float vec2.ptr[2]   Unioned array of both components---------------------.. function:: void vec2_zero(struct vec2 *dst)   Zeroes a vector   :param dst: Destination---------------------.. function:: void vec2_set(struct vec2 *dst, float x, float y)   Sets the individual components of a 2-component vector.   :param dst: Destination   :param x:   X component   :param y:   Y component---------------------.. function:: void vec2_copy(struct vec2 *dst, const struct vec2 *v)   Copies a vector   :param dst: Destination   :param v:   Vector to copy---------------------.. function:: void vec2_add(struct vec2 *dst, const struct vec2 *v1, const struct vec2 *v2)   Adds two vectors   :param dst: Destination   :param v1:  Vector 1   :param v2:  Vector 2---------------------.. function:: void vec2_sub(struct vec2 *dst, const struct vec2 *v1, const struct vec2 *v2)   Subtracts two vectors   :param dst: Destination   :param v1:  Vector being subtracted from   :param v2:  Vector being subtracted---------------------.. function:: void vec2_mul(struct vec2 *dst, const struct vec2 *v1, const struct vec2 *v2)   Multiplies two vectors   :param dst: Destination   :param v1:  Vector 1   :param v2:  Vector 2---------------------.. function:: void vec2_div(struct vec2 *dst, const struct vec2 *v1, const struct vec2 *v2)   Divides two vectors   :param dst: Destination   :param v1:  Dividend   :param v2:  Divisor---------------------.. function:: void vec2_addf(struct vec2 *dst, const struct vec2 *v, float f)   Adds a floating point to all components   :param dst: Destination   :param dst: Vector   :param f:   Floating point---------------------.. function:: void vec2_subf(struct vec2 *dst, const struct vec2 *v, float f)   Subtracts a floating point from all components   :param dst: Destination   :param v:   Vector being subtracted from   :param f:   Floating point being subtracted   ---------------------.. function:: void vec2_mulf(struct vec2 *dst, const struct vec2 *v, float f)   Multiplies a floating point with all components   :param dst: Destination   :param dst: Vector   :param f:   Floating point---------------------.. function:: void vec2_divf(struct vec2 *dst, const struct vec2 *v, float f)   Divides a floating point from all components   :param dst: Destination   :param v:   Vector (dividend)   :param f:   Floating point (divisor)---------------------.. function:: void vec2_neg(struct vec2 *dst, const struct vec2 *v)   Negates a vector   :param dst: Destination   :param v:   Vector to negate---------------------.. function:: float vec2_dot(const struct vec2 *v1, const struct vec2 *v2)   Performs a dot product between two vectors   :param v1: Vector 1   :param v2: Vector 2   :return:   Result of the dot product---------------------.. function:: float vec2_len(const struct vec2 *v)   Gets the length of a vector   :param v: Vector   :return:  The vector's length---------------------.. function:: float vec2_dist(const struct vec2 *v1, const struct vec2 *v2)   Gets the distance between two vectors   :param v1: Vector 1   :param v2: Vector 2   :return:   Distance between the two vectors---------------------.. function:: void vec2_minf(struct vec2 *dst, const struct vec2 *v, float val)   Gets the minimum values between a vector's components and a floating point   :param dst: Destination   :param v:   Vector   :param val: Floating point---------------------.. function:: void vec2_min(struct vec2 *dst, const struct vec2 *v, const struct vec2 *min_v)   Gets the minimum values between two vectors   :param dst:   Destination   :param v:     Vector 1   :param min_v: Vector 2---------------------.. function:: void vec2_maxf(struct vec2 *dst, const struct vec2 *v, float val)   Gets the maximum values between a vector's components and a floating point   :param dst: Destination   :param v:   Vector   :param val: Floating point---------------------.. function:: void vec2_max(struct vec2 *dst, const struct vec2 *v, const struct vec2 *max_v)   Gets the maximum values between two vectors   :param dst:   Destination   :param v:     Vector 1   :param max_v: Vector 2---------------------.. function:: void vec2_abs(struct vec2 *dst, const struct vec2 *v)   Gets the absolute values of each component   :param dst: Destination   :param v:   Vector---------------------.. function:: void vec2_floor(struct vec2 *dst, const struct vec2 *v)   Gets the floor values of each component   :param dst: Destination   :param v:   Vector---------------------.. function:: void vec2_ceil(struct vec2 *dst, const struct vec2 *v)   Gets the ceiling values of each component   :param dst: Destination   :param v:   Vector---------------------.. function:: int vec2_close(const struct vec2 *v1, const struct vec2 *v2, float epsilon)   Compares two vectors   :param v1:      Vector 1   :param v2:      Vector 2   :param epsilon: Maximum precision for comparison---------------------.. function:: void vec2_norm(struct vec2 *dst, const struct vec2 *v)   Normalizes a vector   :param dst: Destination   :param v:   Vector to normalize
 |