123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228 |
- Quaternion
- ==========
- .. code:: cpp
- #include <graphics/quat.h>
- .. struct:: quat
- Two component quaternion structure.
- .. member:: float quat.x
- X component
- .. member:: float quat.y
- Y component
- .. member:: float quat.z
- Z component
- .. member:: float quat.w
- W component
- .. member:: float quat.ptr[4]
- Unioned array of all components
- ---------------------
- .. function:: void quat_identity(struct quat *dst)
- Sets a quaternion to {0.0f, 0.0f, 0.0f, 1.0f}.
- :param dst: Destination
- ---------------------
- .. function:: void quat_set(struct quat *dst, float x, float y)
- Sets the individual components of a quaternion.
- :param dst: Destination
- :param x: X component
- :param y: Y component
- :param y: Z component
- :param w: W component
- ---------------------
- .. function:: void quat_copy(struct quat *dst, const struct quat *v)
- Copies a quaternion
- :param dst: Destination
- :param v: Quaternion to copy
- ---------------------
- .. function:: void quat_add(struct quat *dst, const struct quat *v1, const struct quat *v2)
- Adds two quaternions
- :param dst: Destination
- :param v1: Quaternion 1
- :param v2: Quaternion 2
- ---------------------
- .. function:: void quat_sub(struct quat *dst, const struct quat *v1, const struct quat *v2)
- Subtracts two quaternions
- :param dst: Destination
- :param v1: Quaternion being subtracted from
- :param v2: Quaternion being subtracted
- ---------------------
- .. function:: void quat_mul(struct quat *dst, const struct quat *v1, const struct quat *v2)
- Multiplies two quaternions
- :param dst: Destination
- :param v1: Quaternion 1
- :param v2: Quaternion 2
- ---------------------
- .. function:: void quat_addf(struct quat *dst, const struct quat *v, float f)
- Adds a floating point to all components
- :param dst: Destination
- :param dst: Quaternion
- :param f: Floating point
- ---------------------
- .. function:: void quat_subf(struct quat *dst, const struct quat *v, float f)
- Subtracts a floating point from all components
- :param dst: Destination
- :param v: Quaternion being subtracted from
- :param f: Floating point being subtracted
- ---------------------
- .. function:: void quat_mulf(struct quat *dst, const struct quat *v, float f)
- Multiplies a floating point with all components
- :param dst: Destination
- :param dst: Quaternion
- :param f: Floating point
- ---------------------
- .. function:: void quat_inv(struct quat *dst, const struct quat *v)
- Inverts a quaternion
- :param dst: Destination
- :param v: Quaternion to invert
- ---------------------
- .. function:: float quat_dot(const struct quat *v1, const struct quat *v2)
- Performs a dot product between two quaternions
- :param v1: Quaternion 1
- :param v2: Quaternion 2
- :return: Result of the dot product
- ---------------------
- .. function:: float quat_len(const struct quat *v)
- Gets the length of a quaternion
- :param v: Quaternion
- :return: The quaternion's length
- ---------------------
- .. function:: float quat_dist(const struct quat *v1, const struct quat *v2)
- Gets the distance between two quaternions
- :param v1: Quaternion 1
- :param v2: Quaternion 2
- :return: Distance between the two quaternions
- ---------------------
- .. function:: void quat_from_axisang(struct quat *dst, const struct axisang *aa)
- Converts an axis angle to a quaternion
- :param dst: Destination quaternion
- :param aa: Axis angle
- ---------------------
- .. function:: void quat_from_matrix4(struct quat *dst, const struct matrix4 *m)
- Converts the rotational properties of a matrix to a quaternion
- :param dst: Destination quaternion
- :param m: Matrix to convert
- ---------------------
- .. function:: void quat_get_dir(struct vec3 *dst, const struct quat *q)
- Converts a quaternion to a directional vector
- :param dst: Destination 3-component vector
- :param q: Quaternion
- ---------------------
- .. function:: void quat_set_look_dir(struct quat *dst, const struct vec3 *dir)
- Creates a quaternion from a specific "look" direction
- :param dst: Destination quaternion
- :param dir: 3-component vector representing the look direction
- ---------------------
- .. function:: void quat_interpolate(struct quat *dst, const struct quat *q1, const struct quat *q2, float t)
- Linearly interpolates two quaternions
- :param dst: Destination quaternion
- :param q1: Quaternion 1
- :param q2: Quaternion 2
- :param t: Time value (0.0f..1.0f)
- ---------------------
- .. function:: void quat_get_tangent(struct quat *dst, const struct quat *prev, const struct quat *q, const struct quat *next)
- Gets a tangent value for the center of three rotational values
- :param dst: Destination quaternion
- :param prev: Previous rotation
- :param q: Rotation to get tangent for
- :param next: Next rotation
- ---------------------
- .. function:: void quat_interpolate_cubic(struct quat *dst, const struct quat *q1, const struct quat *q2, const struct quat *m1, const struct quat *m2, float t)
- Performs cubic interpolation between two quaternions
- :param dst: Destination quaternion
- :param q1: Quaternion 1
- :param q2: Quaternion 2
- :param m1: Tangent 1
- :param m2: Tangent 2
- :param t: Time value (0.0f..1.0f)
|