Hypatia
Data Structures | Macros
/home/dagostinelli/projects/hypatia/hypatia.h File Reference
#include <math.h>
#include <stdio.h>
#include <memory.h>
#include <stdlib.h>
#include <stdint.h>

Go to the source code of this file.

Data Structures

struct  vector2
 
struct  vector3
 
struct  vector4
 
struct  matrix2
 
struct  matrix3
 
struct  matrix4
 
struct  quaternion
 

Macros

#define HYPATIA_VERSION   "2.0.0"
 
#define HYPDEF   HYPAPI
 
#define HYP_INLINE   __inline__
 
#define HYP_FLOAT   double
 
#define HYP_PI   3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679f
 PI to 100 digits (gets rounded off by the compiler) More...
 
#define HYP_TAU   6.2831853071795864769252867665590057683943387987502116419498891846156328125724179972560696506842341359f
 Tau to 100 digits, which is 2 * PI. More...
 
#define HYP_PI_HALF   1.5707963267948966f
 Half of PI. More...
 
#define HYP_PI_SQUARED   9.8696044010893586f
 PI * PI. More...
 
#define HYP_E   2.71828182845904523536028747135266249775724709369995f
 Log e is the Natural Logarithm in base 10. More...
 
#define HYP_RAD_PER_DEG   0.0174532925199432957692369076848861f
 Radians per Degree = PI/180. More...
 
#define HYP_DEG_PER_RAD   57.2957795130823208767981548141052f
 Degrees per Radian = 180/PI. More...
 
#define HYP_PIOVER180   HYP_RAD_PER_DEG
 PI/180. More...
 
#define HYP_PIUNDER180   HYP_DEG_PER_RAD
 180/PI More...
 
#define HYP_EPSILON   1E-5
 Epsilon. This is the value that is used to determine how much rounding error is tolerated. More...
 
#define HYP_MEMSET(a, b, c)   memset(a, b, c)
 A macro that enabled you to override memset. More...
 
#define HYP_RANDOM_FLOAT   (((HYP_FLOAT)rand() - (HYP_FLOAT)rand()) / (HYP_FLOAT)RAND_MAX)
 A macro that returns a random float point number up to RAND_MAX. More...
 
#define HYP_DEG_TO_RAD(angle)   ((angle) * HYP_RAD_PER_DEG)
 A macro that converts an angle in degress to an angle in radians. More...
 
#define HYP_RAD_TO_DEG(radians)   ((radians) * HYP_DEG_PER_RAD)
 A macro that converts an angle in radians to an angle in degrees. More...
 
#define HYP_SQRT(number)   ((HYP_FLOAT)sqrt(number))
 A macro that finds the square root of a value. More...
 
#define HYP_VECTOR3_ZERO   vector3_get_reference_vector3(HYP_REF_VECTOR3_ZERO)
 {0,0,0} More...
 
#define HYP_VECTOR3_UNIT_X   vector3_get_reference_vector3(HYP_REF_VECTOR3_UNIT_X)
 {1,0,0} More...
 
#define HYP_VECTOR3_UNIT_Y   vector3_get_reference_vector3(HYP_REF_VECTOR3_UNIT_Y)
 {0,1,0} More...
 
#define HYP_VECTOR3_UNIT_Z   vector3_get_reference_vector3(HYP_REF_VECTOR3_UNIT_Z)
 {0,0,1} More...
 
#define HYP_VECTOR3_UNIT_X_NEGATIVE   vector3_get_reference_vector3(HYP_REF_VECTOR3_UNIT_X_NEGATIVE)
 {-1,0,0} More...
 
#define HYP_VECTOR3_UNIT_Y_NEGATIVE   vector3_get_reference_vector3(HYP_REF_VECTOR3_UNIT_Y_NEGATIVE)
 {0,-1,0} More...
 
#define HYP_VECTOR3_UNIT_Z_NEGATIVE   vector3_get_reference_vector3(HYP_REF_VECTOR3_UNIT_Z_NEGATIVE)
 {0,0,-1} More...
 
#define HYP_VECTOR3_ONE   vector3_get_reference_vector3(HYP_REF_VECTOR3_ONE)
 {1,1,1} More...
 
#define HYP_VECTOR2_ZERO   vector2_get_reference_vector2(HYP_REF_VECTOR2_ZERO)
 {0,0} More...
 
#define HYP_VECTOR2_UNIT_X   vector2_get_reference_vector2(HYP_REF_VECTOR2_UNIT_X)
 {1,0} More...
 
#define HYP_VECTOR2_UNIT_Y   vector2_get_reference_vector2(HYP_REF_VECTOR2_UNIT_Y)
 {0,1} More...
 
#define HYP_VECTOR2_UNIT_X_NEGATIVE   vector2_get_reference_vector2(HYP_REF_VECTOR2_UNIT_X_NEGATIVE)
 {-1,0} More...
 
#define HYP_VECTOR2_UNIT_Y_NEGATIVE   vector2_get_reference_vector2(HYP_REF_VECTOR2_UNIT_Y_NEGATIVE)
 {0,-1} More...
 
#define HYP_VECTOR2_ONE   vector2_get_reference_vector2(HYP_REF_VECTOR2_ONE)
 {1,1} More...
 
#define scalar_equals   scalar_equalsf
 
#define HYP_SIN(x)   ((HYP_FLOAT)sin(x))
 
#define HYP_COS(x)   ((HYP_FLOAT)cos(x))
 
#define HYP_TAN(x)   ((HYP_FLOAT)tan(x))
 
#define HYP_ASIN(x)   ((HYP_FLOAT)asin(x))
 
#define HYP_ACOS(x)   ((HYP_FLOAT)acos(x))
 
#define HYP_ATAN2(y, x)   ((HYP_FLOAT)atan2(y, x))
 
#define HYP_COT(a)   (1.0f / HYP_TAN(a))
 
#define vector2_length(v)   vector2_magnitude(v)
 
#define vector3_length(v)   vector3_magnitude(v)
 
#define vector4_length(v)   vector4_magnitude(v)
 
static HYP_INLINE HYP_FLOAT HYP_MIN (HYP_FLOAT a, HYP_FLOAT b)
 A function that returns the minimum of a and b. More...
 
static HYP_INLINE HYP_FLOAT HYP_MAX (HYP_FLOAT a, HYP_FLOAT b)
 A macro that returns the maximum of a and b. More...
 
static HYP_INLINE void HYP_SWAP (HYP_FLOAT *a, HYP_FLOAT *b)
 A macro that swaps a and b. More...
 
static HYP_INLINE HYP_FLOAT HYP_SQUARE (HYP_FLOAT number)
 A macro that squares a value squared. More...
 
static HYP_INLINE HYP_FLOAT HYP_ABS (HYP_FLOAT value)
 A macro that returns the absolute value. More...
 
static HYP_INLINE HYP_FLOAT HYP_WRAP (HYP_FLOAT value, HYP_FLOAT start, HYP_FLOAT limit)
 A macro that wraps a value around and around in a range. More...
 
static HYP_INLINE HYP_FLOAT HYP_CLAMP (HYP_FLOAT value, HYP_FLOAT start, HYP_FLOAT limit)
 A macro that constrains the value between two limits a and b. More...
 
HYPAPI short scalar_equalsf (const HYP_FLOAT f1, const HYP_FLOAT f2)
 
HYPAPI short scalar_equals_epsilonf (const HYP_FLOAT f1, const HYP_FLOAT f2, const HYP_FLOAT epsilon)
 
HYPAPI void _matrix2_print_with_columnrow_indexer (struct matrix2 *self)
 
HYPAPI void _matrix2_print_with_rowcolumn_indexer (struct matrix2 *self)
 
HYPAPI struct matrix2_matrix2_set_random (struct matrix2 *self)
 
HYPAPI void _matrix3_print_with_columnrow_indexer (struct matrix3 *self)
 
HYPAPI void _matrix3_print_with_rowcolumn_indexer (struct matrix3 *self)
 
HYPAPI struct matrix3_matrix3_set_random (struct matrix3 *self)
 
HYPAPI void _vector4_print (const struct vector4 *self)
 
HYPAPI struct vector4_vector4_set_random (struct vector4 *self)
 
HYPAPI int vector2_equals (const struct vector2 *self, const struct vector2 *vT)
 
HYPAPI struct vector2vector2_zero (struct vector2 *self)
 
HYPAPI struct vector2vector2_set (struct vector2 *self, const struct vector2 *vT)
 
HYPAPI struct vector2vector2_setf2 (struct vector2 *self, HYP_FLOAT xT, HYP_FLOAT yT)
 
HYPAPI struct vector2vector2_negate (struct vector2 *self)
 
HYPAPI struct vector2vector2_add (struct vector2 *self, const struct vector2 *vT)
 
HYPAPI struct vector2vector2_addf (struct vector2 *self, HYP_FLOAT fT)
 
HYPAPI struct vector2vector2_subtract (struct vector2 *self, const struct vector2 *vT)
 
HYPAPI struct vector2vector2_subtractf (struct vector2 *self, HYP_FLOAT fT)
 
HYPAPI struct vector2vector2_multiply (struct vector2 *self, const struct vector2 *vT)
 
HYPAPI struct vector2vector2_multiplyf (struct vector2 *self, HYP_FLOAT fT)
 
HYPAPI struct vector2vector2_multiplym2 (struct vector2 *self, const struct matrix2 *mT)
 
HYPAPI struct vector2vector2_multiplym3 (struct vector2 *self, const struct matrix3 *mT)
 
HYPAPI struct vector2vector2_divide (struct vector2 *self, const struct vector2 *vT)
 
HYPAPI struct vector2vector2_dividef (struct vector2 *self, HYP_FLOAT fT)
 
HYPAPI struct vector2vector2_normalize (struct vector2 *self)
 
HYPAPI HYP_FLOAT vector2_magnitude (const struct vector2 *self)
 
HYPAPI HYP_FLOAT vector2_distance (const struct vector2 *v1, const struct vector2 *v2)
 
HYPAPI HYP_FLOAT vector2_dot_product (const struct vector2 *self, const struct vector2 *vT)
 
HYPAPI struct vector2vector2_cross_product (struct vector2 *vR, const struct vector2 *vT1, const struct vector2 *vT2)
 
HYPAPI HYP_FLOAT vector2_angle_between (const struct vector2 *self, const struct vector2 *vT)
 
HYPAPI struct vector2vector2_find_normal_axis_between (struct vector2 *vR, const struct vector2 *vT1, const struct vector2 *vT2)
 
HYPAPI int vector3_equals (const struct vector3 *self, const struct vector3 *vT)
 
HYPAPI struct vector3vector3_zero (struct vector3 *self)
 
HYPAPI struct vector3vector3_set (struct vector3 *self, const struct vector3 *vT)
 
HYPAPI struct vector3vector3_setf3 (struct vector3 *self, HYP_FLOAT xT, HYP_FLOAT yT, HYP_FLOAT zT)
 
HYPAPI struct vector3vector3_negate (struct vector3 *self)
 
HYPAPI struct vector3vector3_add (struct vector3 *self, const struct vector3 *vT)
 
HYPAPI struct vector3vector3_addf (struct vector3 *self, HYP_FLOAT fT)
 
HYPAPI struct vector3vector3_subtract (struct vector3 *self, const struct vector3 *vT)
 
HYPAPI struct vector3vector3_subtractf (struct vector3 *self, HYP_FLOAT fT)
 
HYPAPI struct vector3vector3_multiply (struct vector3 *self, const struct vector3 *vT)
 
HYPAPI struct vector3vector3_multiplyf (struct vector3 *self, HYP_FLOAT fT)
 
HYPAPI struct vector3vector3_multiplym4 (struct vector3 *self, const struct matrix4 *mT)
 
HYPAPI struct vector3vector3_divide (struct vector3 *self, const struct vector3 *vT)
 
HYPAPI struct vector3vector3_dividef (struct vector3 *self, HYP_FLOAT fT)
 
HYPAPI struct vector3vector3_normalize (struct vector3 *self)
 
HYPAPI HYP_FLOAT vector3_magnitude (const struct vector3 *self)
 
HYPAPI HYP_FLOAT vector3_distance (const struct vector3 *v1, const struct vector3 *v2)
 
HYPAPI HYP_FLOAT vector3_dot_product (const struct vector3 *self, const struct vector3 *vT)
 
HYPAPI struct vector3vector3_cross_product (struct vector3 *vR, const struct vector3 *vT1, const struct vector3 *vT2)
 
HYPAPI HYP_FLOAT vector3_angle_between (const struct vector3 *self, const struct vector3 *vT)
 
HYPAPI struct vector3vector3_find_normal_axis_between (struct vector3 *vR, const struct vector3 *vT1, const struct vector3 *vT2)
 
HYPAPI struct vector3vector3_rotate_by_quaternion (struct vector3 *self, const struct quaternion *qT)
 
HYPAPI struct vector3vector3_reflect_by_quaternion (struct vector3 *self, const struct quaternion *qT)
 
HYPAPI int vector4_equals (const struct vector4 *self, const struct vector4 *vT)
 
HYPAPI struct vector4vector4_zero (struct vector4 *self)
 
HYPAPI struct vector4vector4_set (struct vector4 *self, const struct vector4 *vT)
 
HYPAPI struct vector4vector4_setf4 (struct vector4 *self, HYP_FLOAT xT, HYP_FLOAT yT, HYP_FLOAT zT, HYP_FLOAT wT)
 
HYPAPI struct vector4vector4_negate (struct vector4 *self)
 
HYPAPI struct vector4vector4_add (struct vector4 *self, const struct vector4 *vT)
 
HYPAPI struct vector4vector4_addf (struct vector4 *self, HYP_FLOAT fT)
 
HYPAPI struct vector4vector4_subtract (struct vector4 *self, const struct vector4 *vT)
 
HYPAPI struct vector4vector4_subtractf (struct vector4 *self, HYP_FLOAT fT)
 
HYPAPI struct vector4vector4_multiply (struct vector4 *self, const struct vector4 *vT)
 
HYPAPI struct vector4vector4_multiplyf (struct vector4 *self, HYP_FLOAT fT)
 
HYPAPI struct vector4vector4_divide (struct vector4 *self, const struct vector4 *vT)
 
HYPAPI struct vector4vector4_dividef (struct vector4 *self, HYP_FLOAT fT)
 
HYPAPI struct vector4vector4_normalize (struct vector4 *self)
 
HYPAPI HYP_FLOAT vector4_magnitude (const struct vector4 *self)
 
HYPAPI HYP_FLOAT vector4_distance (const struct vector4 *v1, const struct vector4 *v2)
 
HYPAPI HYP_FLOAT vector4_dot_product (const struct vector4 *self, const struct vector4 *vT)
 
HYPAPI struct vector4vector4_cross_product (struct vector4 *vR, const struct vector4 *vT1, const struct vector4 *vT2)
 
HYPAPI int matrix2_equals (const struct matrix2 *self, const struct matrix2 *mT)
 
HYPAPI struct matrix2matrix2_zero (struct matrix2 *self)
 
HYPAPI struct matrix2matrix2_identity (struct matrix2 *self)
 
HYPAPI struct matrix2matrix2_set (struct matrix2 *self, const struct matrix2 *mT)
 
HYPAPI struct matrix2matrix2_add (struct matrix2 *self, const struct matrix2 *mT)
 
HYPAPI struct matrix2matrix2_subtract (struct matrix2 *self, const struct matrix2 *mT)
 
HYPAPI struct matrix2matrix2_multiply (struct matrix2 *self, const struct matrix2 *mT)
 
HYPAPI struct matrix2matrix2_multiplyf (struct matrix2 *self, HYP_FLOAT scalar)
 
HYPAPI struct vector2matrix2_multiplyv2 (const struct matrix2 *self, const struct vector2 *vT, struct vector2 *vR)
 
HYPAPI struct matrix2matrix2_transpose (struct matrix2 *self)
 
HYPAPI HYP_FLOAT matrix2_determinant (const struct matrix2 *self)
 
HYPAPI struct matrix2matrix2_invert (struct matrix2 *self)
 
HYPAPI struct matrix2matrix2_inverse (const struct matrix2 *self, struct matrix2 *mR)
 
HYPAPI struct matrix2matrix2_make_transformation_scalingv2 (struct matrix2 *self, const struct vector2 *scale)
 
HYPAPI struct matrix2matrix2_make_transformation_rotationf_z (struct matrix2 *self, HYP_FLOAT angle)
 
HYPAPI struct matrix2matrix2_rotate (struct matrix2 *self, HYP_FLOAT angle)
 
HYPAPI struct matrix2matrix2_scalev2 (struct matrix2 *self, const struct vector2 *scale)
 
HYPAPI struct matrix2_matrix2_transpose_rowcolumn (struct matrix2 *self)
 
HYPAPI struct matrix2_matrix2_transpose_columnrow (struct matrix2 *self)
 
HYPAPI int matrix3_equals (const struct matrix3 *self, const struct matrix3 *mT)
 
HYPAPI struct matrix3matrix3_zero (struct matrix3 *self)
 
HYPAPI struct matrix3matrix3_identity (struct matrix3 *self)
 
HYPAPI struct matrix3matrix3_set (struct matrix3 *self, const struct matrix3 *mT)
 
HYPAPI struct matrix3matrix3_add (struct matrix3 *self, const struct matrix3 *mT)
 
HYPAPI struct matrix3matrix3_subtract (struct matrix3 *self, const struct matrix3 *mT)
 
HYPAPI struct matrix3matrix3_multiply (struct matrix3 *self, const struct matrix3 *mT)
 
HYPAPI struct matrix3matrix3_multiplyf (struct matrix3 *self, HYP_FLOAT scalar)
 
HYPAPI struct vector2matrix3_multiplyv2 (const struct matrix3 *self, const struct vector2 *vT, struct vector2 *vR)
 
HYPAPI struct matrix3matrix3_transpose (struct matrix3 *self)
 
HYPAPI HYP_FLOAT matrix3_determinant (const struct matrix3 *self)
 
HYPAPI struct matrix3matrix3_invert (struct matrix3 *self)
 
HYPAPI struct matrix3matrix3_inverse (const struct matrix3 *self, struct matrix3 *mR)
 
HYPAPI struct matrix3matrix3_make_transformation_translationv2 (struct matrix3 *self, const struct vector2 *translation)
 
HYPAPI struct matrix3matrix3_make_transformation_scalingv2 (struct matrix3 *self, const struct vector2 *scale)
 
HYPAPI struct matrix3matrix3_make_transformation_rotationf_z (struct matrix3 *self, HYP_FLOAT angle)
 
HYPAPI struct matrix3matrix3_translatev2 (struct matrix3 *self, const struct vector2 *translation)
 
HYPAPI struct matrix3matrix3_rotate (struct matrix3 *self, HYP_FLOAT angle)
 
HYPAPI struct matrix3matrix3_scalev2 (struct matrix3 *self, const struct vector2 *scale)
 
HYPAPI struct matrix3_matrix3_transpose_rowcolumn (struct matrix3 *self)
 
HYPAPI struct matrix3_matrix3_transpose_columnrow (struct matrix3 *self)
 
HYPAPI int matrix4_equals (const struct matrix4 *self, const struct matrix4 *mT)
 
HYPAPI struct matrix4matrix4_zero (struct matrix4 *self)
 
HYPAPI struct matrix4matrix4_identity (struct matrix4 *self)
 
HYPAPI struct matrix4matrix4_set (struct matrix4 *self, const struct matrix4 *mT)
 
HYPAPI struct matrix4matrix4_add (struct matrix4 *self, const struct matrix4 *mT)
 
HYPAPI struct matrix4matrix4_subtract (struct matrix4 *self, const struct matrix4 *mT)
 
HYPAPI struct matrix4matrix4_multiply (struct matrix4 *self, const struct matrix4 *mT)
 
HYPAPI struct matrix4matrix4_multiplyf (struct matrix4 *self, HYP_FLOAT scalar)
 
HYPAPI struct vector4matrix4_multiplyv4 (const struct matrix4 *self, const struct vector4 *vT, struct vector4 *vR)
 
HYPAPI struct vector3matrix4_multiplyv3 (const struct matrix4 *self, const struct vector3 *vT, struct vector3 *vR)
 
HYPAPI struct vector2matrix4_multiplyv2 (const struct matrix4 *self, const struct vector2 *vT, struct vector2 *vR)
 
HYPAPI struct matrix4matrix4_transpose (struct matrix4 *self)
 
HYPAPI HYP_FLOAT matrix4_determinant (const struct matrix4 *self)
 
HYPAPI struct matrix4matrix4_invert (struct matrix4 *self)
 
HYPAPI struct matrix4matrix4_inverse (const struct matrix4 *self, struct matrix4 *mR)
 
HYPAPI struct matrix4matrix4_make_transformation_translationv3 (struct matrix4 *self, const struct vector3 *translation)
 
HYPAPI struct matrix4matrix4_make_transformation_scalingv3 (struct matrix4 *self, const struct vector3 *scale)
 
HYPAPI struct matrix4matrix4_make_transformation_rotationq (struct matrix4 *self, const struct quaternion *qT)
 
HYPAPI struct matrix4matrix4_make_transformation_rotationf_x (struct matrix4 *self, HYP_FLOAT angle)
 
HYPAPI struct matrix4matrix4_make_transformation_rotationf_y (struct matrix4 *self, HYP_FLOAT angle)
 
HYPAPI struct matrix4matrix4_make_transformation_rotationf_z (struct matrix4 *self, HYP_FLOAT angle)
 
HYPAPI struct matrix4matrix4_translatev3 (struct matrix4 *self, const struct vector3 *translation)
 
HYPAPI struct matrix4matrix4_rotatev3 (struct matrix4 *self, const struct vector3 *axis, HYP_FLOAT angle)
 
HYPAPI struct matrix4matrix4_scalev3 (struct matrix4 *self, const struct vector3 *scale)
 
HYPAPI int quaternion_equals (const struct quaternion *self, const struct quaternion *vT)
 
HYPAPI struct quaternionquaternion_identity (struct quaternion *self)
 
HYPAPI struct quaternionquaternion_setf4 (struct quaternion *self, HYP_FLOAT x, HYP_FLOAT y, HYP_FLOAT z, HYP_FLOAT w)
 
HYPAPI struct quaternionquaternion_set (struct quaternion *self, const struct quaternion *qT)
 
HYPAPI struct quaternionquaternion_add (struct quaternion *self, const struct quaternion *qT)
 
HYPAPI struct quaternionquaternion_multiply (struct quaternion *self, const struct quaternion *qT)
 
HYPAPI struct quaternionquaternion_multiplyv3 (struct quaternion *self, const struct vector3 *vT)
 
HYPAPI struct quaternionquaternion_multiplyf (struct quaternion *self, HYP_FLOAT f)
 
HYPAPI struct quaternionquaternion_subtract (struct quaternion *self, const struct quaternion *qT)
 
HYPAPI struct quaternionquaternion_negate (struct quaternion *self)
 
HYPAPI struct quaternionquaternion_conjugate (struct quaternion *self)
 
HYPAPI struct quaternionquaternion_inverse (struct quaternion *self)
 
HYPAPI short quaternion_is_unit (struct quaternion *self)
 
HYPAPI short quaternion_is_pure (struct quaternion *self)
 
HYPAPI HYP_FLOAT quaternion_norm (const struct quaternion *self)
 
HYPAPI HYP_FLOAT quaternion_magnitude (const struct quaternion *self)
 
HYPAPI struct quaternionquaternion_normalize (struct quaternion *self)
 
HYPAPI HYP_FLOAT quaternion_dot_product (const struct quaternion *self, const struct quaternion *qT)
 
HYPAPI struct quaternionquaternion_lerp (const struct quaternion *start, const struct quaternion *end, HYP_FLOAT percent, struct quaternion *qR)
 
HYPAPI struct quaternionquaternion_nlerp (const struct quaternion *start, const struct quaternion *end, HYP_FLOAT percent, struct quaternion *qR)
 
HYPAPI struct quaternionquaternion_slerp (const struct quaternion *start, const struct quaternion *end, HYP_FLOAT percent, struct quaternion *qR)
 
HYPAPI void quaternion_get_axis_anglev3 (const struct quaternion *self, struct vector3 *vR, HYP_FLOAT *angle)
 
HYPAPI struct quaternionquaternion_set_from_axis_anglev3 (struct quaternion *self, const struct vector3 *axis, HYP_FLOAT angle)
 
HYPAPI struct quaternionquaternion_set_from_axis_anglef3 (struct quaternion *self, HYP_FLOAT x, HYP_FLOAT y, HYP_FLOAT z, HYP_FLOAT angle)
 
HYPAPI struct quaternionquaternion_set_from_euler_anglesf3 (struct quaternion *self, HYP_FLOAT ax, HYP_FLOAT ay, HYP_FLOAT az)
 
HYPAPI void quaternion_get_euler_anglesf3 (const struct quaternion *self, HYP_FLOAT *ax, HYP_FLOAT *ay, HYP_FLOAT *az)
 
HYPAPI struct quaternionquaternion_get_rotation_tov3 (const struct vector3 *from, const struct vector3 *to, struct quaternion *qR)
 
HYPAPI struct quaternionquaternion_rotate_by_quaternion_EXP (struct quaternion *self, const struct quaternion *qT)
 
HYPAPI struct quaternionquaternion_rotate_by_axis_angle_EXP (struct quaternion *self, const struct vector3 *axis, HYP_FLOAT angle)
 
HYPAPI struct quaternionquaternion_rotate_by_euler_angles_EXP (struct quaternion *self, HYP_FLOAT ax, HYP_FLOAT ay, HYP_FLOAT az)
 
HYPAPI HYP_FLOAT quaternion_difference_EXP (const struct quaternion *q1, const struct quaternion *q2)
 
HYPAPI HYP_FLOAT quaternion_angle_between_EXP (const struct quaternion *self, const struct quaternion *qT)
 
HYPAPI void quaternion_axis_between_EXP (const struct quaternion *self, const struct quaternion *qT, struct quaternion *qR)
 
HYPAPI struct matrix4matrix4_projection_perspective_fovy_rh_EXP (struct matrix4 *self, HYP_FLOAT fovy, HYP_FLOAT aspect, HYP_FLOAT zNear, HYP_FLOAT zFar)
 
HYPAPI struct matrix4matrix4_projection_ortho3d_rh_EXP (struct matrix4 *self, HYP_FLOAT xmin, HYP_FLOAT xmax, HYP_FLOAT ymin, HYP_FLOAT ymax, HYP_FLOAT zNear, HYP_FLOAT zFar)
 
HYPAPI struct matrix4matrix4_view_lookat_rh_EXP (struct matrix4 *self, const struct vector3 *eye, const struct vector3 *target, const struct vector3 *up)
 
HYPAPI struct vector3matrix4_multiplyv3_EXP (const struct matrix4 *m, const struct vector3 *vT, struct vector3 *vR)
 
HYPAPI struct quaternion quaternion_cross_product_EXP (const struct quaternion *self, const struct quaternion *vT)
 
HYPAPI struct matrix4matrix4_set_from_quaternion_EXP (struct matrix4 *self, const struct quaternion *qT)
 
HYPAPI struct matrix4matrix4_set_from_axisv3_angle_EXP (struct matrix4 *self, const struct vector3 *axis, HYP_FLOAT angle)
 
HYPAPI struct matrix4matrix4_set_from_axisf3_angle_EXP (struct matrix4 *self, HYP_FLOAT x, HYP_FLOAT y, HYP_FLOAT z, const HYP_FLOAT angle)
 
HYPAPI struct matrix4matrix4_set_from_euler_anglesf3_EXP (struct matrix4 *self, const HYP_FLOAT x, const HYP_FLOAT y, const HYP_FLOAT z)
 
HYPAPI struct vector3matrix4_get_translation_EXP (const struct matrix4 *self, struct vector3 *vT)
 
HYPAPI struct matrix4matrix4_make_transformation_rotationv3_EXP (struct matrix4 *self, const struct vector3 *vR)
 
HYPAPI struct matrix4matrix4_transformation_compose_EXP (struct matrix4 *self, const struct vector3 *scale, const struct quaternion *rotation, const struct vector3 *translation)
 
HYPAPI uint8_t matrix4_transformation_decompose_EXP (struct matrix4 *self, struct vector3 *scale, struct quaternion *rotation, struct vector3 *translation)
 

Macro Definition Documentation

◆ HYP_ACOS

#define HYP_ACOS (   x)    ((HYP_FLOAT)acos(x))

◆ HYP_ASIN

#define HYP_ASIN (   x)    ((HYP_FLOAT)asin(x))

◆ HYP_ATAN2

#define HYP_ATAN2 (   y,
 
)    ((HYP_FLOAT)atan2(y, x))

◆ HYP_COS

#define HYP_COS (   x)    ((HYP_FLOAT)cos(x))

◆ HYP_COT

#define HYP_COT (   a)    (1.0f / HYP_TAN(a))

◆ HYP_DEG_PER_RAD

#define HYP_DEG_PER_RAD   57.2957795130823208767981548141052f

Degrees per Radian = 180/PI.

◆ HYP_DEG_TO_RAD

#define HYP_DEG_TO_RAD (   angle)    ((angle) * HYP_RAD_PER_DEG)

A macro that converts an angle in degress to an angle in radians.

◆ HYP_E

#define HYP_E   2.71828182845904523536028747135266249775724709369995f

Log e is the Natural Logarithm in base 10.

◆ HYP_EPSILON

#define HYP_EPSILON   1E-5

Epsilon. This is the value that is used to determine how much rounding error is tolerated.

◆ HYP_FLOAT

#define HYP_FLOAT   double

◆ HYP_INLINE

#define HYP_INLINE   __inline__

◆ HYP_MEMSET

#define HYP_MEMSET (   a,
  b,
 
)    memset(a, b, c)

A macro that enabled you to override memset.

◆ HYP_PI

#define HYP_PI   3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679f

PI to 100 digits (gets rounded off by the compiler)

◆ HYP_PI_HALF

#define HYP_PI_HALF   1.5707963267948966f

Half of PI.

◆ HYP_PI_SQUARED

#define HYP_PI_SQUARED   9.8696044010893586f

PI * PI.

◆ HYP_PIOVER180

#define HYP_PIOVER180   HYP_RAD_PER_DEG

PI/180.

◆ HYP_PIUNDER180

#define HYP_PIUNDER180   HYP_DEG_PER_RAD

180/PI

◆ HYP_RAD_PER_DEG

#define HYP_RAD_PER_DEG   0.0174532925199432957692369076848861f

Radians per Degree = PI/180.

◆ HYP_RAD_TO_DEG

#define HYP_RAD_TO_DEG (   radians)    ((radians) * HYP_DEG_PER_RAD)

A macro that converts an angle in radians to an angle in degrees.

◆ HYP_RANDOM_FLOAT

#define HYP_RANDOM_FLOAT   (((HYP_FLOAT)rand() - (HYP_FLOAT)rand()) / (HYP_FLOAT)RAND_MAX)

A macro that returns a random float point number up to RAND_MAX.

◆ HYP_SIN

#define HYP_SIN (   x)    ((HYP_FLOAT)sin(x))

◆ HYP_SQRT

#define HYP_SQRT (   number)    ((HYP_FLOAT)sqrt(number))

A macro that finds the square root of a value.

◆ HYP_TAN

#define HYP_TAN (   x)    ((HYP_FLOAT)tan(x))

◆ HYP_TAU

#define HYP_TAU   6.2831853071795864769252867665590057683943387987502116419498891846156328125724179972560696506842341359f

Tau to 100 digits, which is 2 * PI.

◆ HYP_VECTOR2_ONE

#define HYP_VECTOR2_ONE   vector2_get_reference_vector2(HYP_REF_VECTOR2_ONE)

{1,1}

◆ HYP_VECTOR2_UNIT_X

#define HYP_VECTOR2_UNIT_X   vector2_get_reference_vector2(HYP_REF_VECTOR2_UNIT_X)

{1,0}

◆ HYP_VECTOR2_UNIT_X_NEGATIVE

#define HYP_VECTOR2_UNIT_X_NEGATIVE   vector2_get_reference_vector2(HYP_REF_VECTOR2_UNIT_X_NEGATIVE)

{-1,0}

◆ HYP_VECTOR2_UNIT_Y

#define HYP_VECTOR2_UNIT_Y   vector2_get_reference_vector2(HYP_REF_VECTOR2_UNIT_Y)

{0,1}

◆ HYP_VECTOR2_UNIT_Y_NEGATIVE

#define HYP_VECTOR2_UNIT_Y_NEGATIVE   vector2_get_reference_vector2(HYP_REF_VECTOR2_UNIT_Y_NEGATIVE)

{0,-1}

◆ HYP_VECTOR2_ZERO

#define HYP_VECTOR2_ZERO   vector2_get_reference_vector2(HYP_REF_VECTOR2_ZERO)

{0,0}

◆ HYP_VECTOR3_ONE

#define HYP_VECTOR3_ONE   vector3_get_reference_vector3(HYP_REF_VECTOR3_ONE)

{1,1,1}

◆ HYP_VECTOR3_UNIT_X

#define HYP_VECTOR3_UNIT_X   vector3_get_reference_vector3(HYP_REF_VECTOR3_UNIT_X)

{1,0,0}

◆ HYP_VECTOR3_UNIT_X_NEGATIVE

#define HYP_VECTOR3_UNIT_X_NEGATIVE   vector3_get_reference_vector3(HYP_REF_VECTOR3_UNIT_X_NEGATIVE)

{-1,0,0}

◆ HYP_VECTOR3_UNIT_Y

#define HYP_VECTOR3_UNIT_Y   vector3_get_reference_vector3(HYP_REF_VECTOR3_UNIT_Y)

{0,1,0}

◆ HYP_VECTOR3_UNIT_Y_NEGATIVE

#define HYP_VECTOR3_UNIT_Y_NEGATIVE   vector3_get_reference_vector3(HYP_REF_VECTOR3_UNIT_Y_NEGATIVE)

{0,-1,0}

◆ HYP_VECTOR3_UNIT_Z

#define HYP_VECTOR3_UNIT_Z   vector3_get_reference_vector3(HYP_REF_VECTOR3_UNIT_Z)

{0,0,1}

◆ HYP_VECTOR3_UNIT_Z_NEGATIVE

#define HYP_VECTOR3_UNIT_Z_NEGATIVE   vector3_get_reference_vector3(HYP_REF_VECTOR3_UNIT_Z_NEGATIVE)

{0,0,-1}

◆ HYP_VECTOR3_ZERO

#define HYP_VECTOR3_ZERO   vector3_get_reference_vector3(HYP_REF_VECTOR3_ZERO)

{0,0,0}

◆ HYPATIA_VERSION

#define HYPATIA_VERSION   "2.0.0"

◆ HYPDEF

#define HYPDEF   HYPAPI

◆ scalar_equals

#define scalar_equals   scalar_equalsf

◆ vector2_length

#define vector2_length (   v)    vector2_magnitude(v)

◆ vector3_length

#define vector3_length (   v)    vector3_magnitude(v)

◆ vector4_length

#define vector4_length (   v)    vector4_magnitude(v)

Function Documentation

◆ _matrix2_print_with_columnrow_indexer()

HYPAPI void _matrix2_print_with_columnrow_indexer ( struct matrix2 self)

◆ _matrix2_print_with_rowcolumn_indexer()

HYPAPI void _matrix2_print_with_rowcolumn_indexer ( struct matrix2 self)

◆ _matrix2_set_random()

HYPAPI struct matrix2* _matrix2_set_random ( struct matrix2 self)

◆ _matrix2_transpose_columnrow()

HYPAPI struct matrix2* _matrix2_transpose_columnrow ( struct matrix2 self)

◆ _matrix2_transpose_rowcolumn()

HYPAPI struct matrix2* _matrix2_transpose_rowcolumn ( struct matrix2 self)

◆ _matrix3_print_with_columnrow_indexer()

HYPAPI void _matrix3_print_with_columnrow_indexer ( struct matrix3 self)

◆ _matrix3_print_with_rowcolumn_indexer()

HYPAPI void _matrix3_print_with_rowcolumn_indexer ( struct matrix3 self)

◆ _matrix3_set_random()

HYPAPI struct matrix3* _matrix3_set_random ( struct matrix3 self)

◆ _matrix3_transpose_columnrow()

HYPAPI struct matrix3* _matrix3_transpose_columnrow ( struct matrix3 self)

◆ _matrix3_transpose_rowcolumn()

HYPAPI struct matrix3* _matrix3_transpose_rowcolumn ( struct matrix3 self)

◆ _vector4_print()

HYPAPI void _vector4_print ( const struct vector4 self)

◆ _vector4_set_random()

HYPAPI struct vector4* _vector4_set_random ( struct vector4 self)

◆ HYP_ABS()

static HYP_INLINE HYP_FLOAT HYP_ABS ( HYP_FLOAT  value)
static

A macro that returns the absolute value.

◆ HYP_CLAMP()

static HYP_INLINE HYP_FLOAT HYP_CLAMP ( HYP_FLOAT  value,
HYP_FLOAT  start,
HYP_FLOAT  limit 
)
static

A macro that constrains the value between two limits a and b.

◆ HYP_MAX()

static HYP_INLINE HYP_FLOAT HYP_MAX ( HYP_FLOAT  a,
HYP_FLOAT  b 
)
static

A macro that returns the maximum of a and b.

◆ HYP_MIN()

static HYP_INLINE HYP_FLOAT HYP_MIN ( HYP_FLOAT  a,
HYP_FLOAT  b 
)
static

A function that returns the minimum of a and b.

◆ HYP_SQUARE()

static HYP_INLINE HYP_FLOAT HYP_SQUARE ( HYP_FLOAT  number)
static

A macro that squares a value squared.

◆ HYP_SWAP()

static HYP_INLINE void HYP_SWAP ( HYP_FLOAT a,
HYP_FLOAT b 
)
static

A macro that swaps a and b.

◆ HYP_WRAP()

static HYP_INLINE HYP_FLOAT HYP_WRAP ( HYP_FLOAT  value,
HYP_FLOAT  start,
HYP_FLOAT  limit 
)
static

A macro that wraps a value around and around in a range.

◆ matrix2_add()

HYPAPI struct matrix2* matrix2_add ( struct matrix2 self,
const struct matrix2 mT 
)

◆ matrix2_determinant()

HYPAPI HYP_FLOAT matrix2_determinant ( const struct matrix2 self)

◆ matrix2_equals()

HYPAPI int matrix2_equals ( const struct matrix2 self,
const struct matrix2 mT 
)

◆ matrix2_identity()

HYPAPI struct matrix2* matrix2_identity ( struct matrix2 self)

◆ matrix2_inverse()

HYPAPI struct matrix2* matrix2_inverse ( const struct matrix2 self,
struct matrix2 mR 
)

◆ matrix2_invert()

HYPAPI struct matrix2* matrix2_invert ( struct matrix2 self)

◆ matrix2_make_transformation_rotationf_z()

HYPAPI struct matrix2* matrix2_make_transformation_rotationf_z ( struct matrix2 self,
HYP_FLOAT  angle 
)

◆ matrix2_make_transformation_scalingv2()

HYPAPI struct matrix2* matrix2_make_transformation_scalingv2 ( struct matrix2 self,
const struct vector2 scale 
)

◆ matrix2_multiply()

HYPAPI struct matrix2* matrix2_multiply ( struct matrix2 self,
const struct matrix2 mT 
)

◆ matrix2_multiplyf()

HYPAPI struct matrix2* matrix2_multiplyf ( struct matrix2 self,
HYP_FLOAT  scalar 
)

◆ matrix2_multiplyv2()

HYPAPI struct vector2* matrix2_multiplyv2 ( const struct matrix2 self,
const struct vector2 vT,
struct vector2 vR 
)

◆ matrix2_rotate()

HYPAPI struct matrix2* matrix2_rotate ( struct matrix2 self,
HYP_FLOAT  angle 
)

◆ matrix2_scalev2()

HYPAPI struct matrix2* matrix2_scalev2 ( struct matrix2 self,
const struct vector2 scale 
)

◆ matrix2_set()

HYPAPI struct matrix2* matrix2_set ( struct matrix2 self,
const struct matrix2 mT 
)

◆ matrix2_subtract()

HYPAPI struct matrix2* matrix2_subtract ( struct matrix2 self,
const struct matrix2 mT 
)

◆ matrix2_transpose()

HYPAPI struct matrix2* matrix2_transpose ( struct matrix2 self)

◆ matrix2_zero()

HYPAPI struct matrix2* matrix2_zero ( struct matrix2 self)

◆ matrix3_add()

HYPAPI struct matrix3* matrix3_add ( struct matrix3 self,
const struct matrix3 mT 
)

◆ matrix3_determinant()

HYPAPI HYP_FLOAT matrix3_determinant ( const struct matrix3 self)

◆ matrix3_equals()

HYPAPI int matrix3_equals ( const struct matrix3 self,
const struct matrix3 mT 
)

◆ matrix3_identity()

HYPAPI struct matrix3* matrix3_identity ( struct matrix3 self)

◆ matrix3_inverse()

HYPAPI struct matrix3* matrix3_inverse ( const struct matrix3 self,
struct matrix3 mR 
)

◆ matrix3_invert()

HYPAPI struct matrix3* matrix3_invert ( struct matrix3 self)

◆ matrix3_make_transformation_rotationf_z()

HYPAPI struct matrix3* matrix3_make_transformation_rotationf_z ( struct matrix3 self,
HYP_FLOAT  angle 
)

◆ matrix3_make_transformation_scalingv2()

HYPAPI struct matrix3* matrix3_make_transformation_scalingv2 ( struct matrix3 self,
const struct vector2 scale 
)

◆ matrix3_make_transformation_translationv2()

HYPAPI struct matrix3* matrix3_make_transformation_translationv2 ( struct matrix3 self,
const struct vector2 translation 
)

◆ matrix3_multiply()

HYPAPI struct matrix3* matrix3_multiply ( struct matrix3 self,
const struct matrix3 mT 
)

◆ matrix3_multiplyf()

HYPAPI struct matrix3* matrix3_multiplyf ( struct matrix3 self,
HYP_FLOAT  scalar 
)

◆ matrix3_multiplyv2()

HYPAPI struct vector2* matrix3_multiplyv2 ( const struct matrix3 self,
const struct vector2 vT,
struct vector2 vR 
)

◆ matrix3_rotate()

HYPAPI struct matrix3* matrix3_rotate ( struct matrix3 self,
HYP_FLOAT  angle 
)

◆ matrix3_scalev2()

HYPAPI struct matrix3* matrix3_scalev2 ( struct matrix3 self,
const struct vector2 scale 
)

◆ matrix3_set()

HYPAPI struct matrix3* matrix3_set ( struct matrix3 self,
const struct matrix3 mT 
)

◆ matrix3_subtract()

HYPAPI struct matrix3* matrix3_subtract ( struct matrix3 self,
const struct matrix3 mT 
)

◆ matrix3_translatev2()

HYPAPI struct matrix3* matrix3_translatev2 ( struct matrix3 self,
const struct vector2 translation 
)

◆ matrix3_transpose()

HYPAPI struct matrix3* matrix3_transpose ( struct matrix3 self)

◆ matrix3_zero()

HYPAPI struct matrix3* matrix3_zero ( struct matrix3 self)

◆ matrix4_add()

HYPAPI struct matrix4* matrix4_add ( struct matrix4 self,
const struct matrix4 mT 
)

◆ matrix4_determinant()

HYPAPI HYP_FLOAT matrix4_determinant ( const struct matrix4 self)

◆ matrix4_equals()

HYPAPI int matrix4_equals ( const struct matrix4 self,
const struct matrix4 mT 
)

◆ matrix4_get_translation_EXP()

HYPAPI struct vector3* matrix4_get_translation_EXP ( const struct matrix4 self,
struct vector3 vT 
)

◆ matrix4_identity()

HYPAPI struct matrix4* matrix4_identity ( struct matrix4 self)

◆ matrix4_inverse()

HYPAPI struct matrix4* matrix4_inverse ( const struct matrix4 self,
struct matrix4 mR 
)

◆ matrix4_invert()

HYPAPI struct matrix4* matrix4_invert ( struct matrix4 self)

◆ matrix4_make_transformation_rotationf_x()

HYPAPI struct matrix4* matrix4_make_transformation_rotationf_x ( struct matrix4 self,
HYP_FLOAT  angle 
)

◆ matrix4_make_transformation_rotationf_y()

HYPAPI struct matrix4* matrix4_make_transformation_rotationf_y ( struct matrix4 self,
HYP_FLOAT  angle 
)

◆ matrix4_make_transformation_rotationf_z()

HYPAPI struct matrix4* matrix4_make_transformation_rotationf_z ( struct matrix4 self,
HYP_FLOAT  angle 
)

◆ matrix4_make_transformation_rotationq()

HYPAPI struct matrix4* matrix4_make_transformation_rotationq ( struct matrix4 self,
const struct quaternion qT 
)

◆ matrix4_make_transformation_rotationv3_EXP()

HYPAPI struct matrix4* matrix4_make_transformation_rotationv3_EXP ( struct matrix4 self,
const struct vector3 vR 
)

◆ matrix4_make_transformation_scalingv3()

HYPAPI struct matrix4* matrix4_make_transformation_scalingv3 ( struct matrix4 self,
const struct vector3 scale 
)

◆ matrix4_make_transformation_translationv3()

HYPAPI struct matrix4* matrix4_make_transformation_translationv3 ( struct matrix4 self,
const struct vector3 translation 
)

◆ matrix4_multiply()

HYPAPI struct matrix4* matrix4_multiply ( struct matrix4 self,
const struct matrix4 mT 
)

◆ matrix4_multiplyf()

HYPAPI struct matrix4* matrix4_multiplyf ( struct matrix4 self,
HYP_FLOAT  scalar 
)

◆ matrix4_multiplyv2()

HYPAPI struct vector2* matrix4_multiplyv2 ( const struct matrix4 self,
const struct vector2 vT,
struct vector2 vR 
)

◆ matrix4_multiplyv3()

HYPAPI struct vector3* matrix4_multiplyv3 ( const struct matrix4 self,
const struct vector3 vT,
struct vector3 vR 
)

◆ matrix4_multiplyv3_EXP()

HYPAPI struct vector3* matrix4_multiplyv3_EXP ( const struct matrix4 m,
const struct vector3 vT,
struct vector3 vR 
)

◆ matrix4_multiplyv4()

HYPAPI struct vector4* matrix4_multiplyv4 ( const struct matrix4 self,
const struct vector4 vT,
struct vector4 vR 
)

◆ matrix4_projection_ortho3d_rh_EXP()

HYPAPI struct matrix4* matrix4_projection_ortho3d_rh_EXP ( struct matrix4 self,
HYP_FLOAT  xmin,
HYP_FLOAT  xmax,
HYP_FLOAT  ymin,
HYP_FLOAT  ymax,
HYP_FLOAT  zNear,
HYP_FLOAT  zFar 
)

◆ matrix4_projection_perspective_fovy_rh_EXP()

HYPAPI struct matrix4* matrix4_projection_perspective_fovy_rh_EXP ( struct matrix4 self,
HYP_FLOAT  fovy,
HYP_FLOAT  aspect,
HYP_FLOAT  zNear,
HYP_FLOAT  zFar 
)

◆ matrix4_rotatev3()

HYPAPI struct matrix4* matrix4_rotatev3 ( struct matrix4 self,
const struct vector3 axis,
HYP_FLOAT  angle 
)

◆ matrix4_scalev3()

HYPAPI struct matrix4* matrix4_scalev3 ( struct matrix4 self,
const struct vector3 scale 
)

◆ matrix4_set()

HYPAPI struct matrix4* matrix4_set ( struct matrix4 self,
const struct matrix4 mT 
)

◆ matrix4_set_from_axisf3_angle_EXP()

HYPAPI struct matrix4* matrix4_set_from_axisf3_angle_EXP ( struct matrix4 self,
HYP_FLOAT  x,
HYP_FLOAT  y,
HYP_FLOAT  z,
const HYP_FLOAT  angle 
)

◆ matrix4_set_from_axisv3_angle_EXP()

HYPAPI struct matrix4* matrix4_set_from_axisv3_angle_EXP ( struct matrix4 self,
const struct vector3 axis,
HYP_FLOAT  angle 
)

◆ matrix4_set_from_euler_anglesf3_EXP()

HYPAPI struct matrix4* matrix4_set_from_euler_anglesf3_EXP ( struct matrix4 self,
const HYP_FLOAT  x,
const HYP_FLOAT  y,
const HYP_FLOAT  z 
)

◆ matrix4_set_from_quaternion_EXP()

HYPAPI struct matrix4* matrix4_set_from_quaternion_EXP ( struct matrix4 self,
const struct quaternion qT 
)

◆ matrix4_subtract()

HYPAPI struct matrix4* matrix4_subtract ( struct matrix4 self,
const struct matrix4 mT 
)

◆ matrix4_transformation_compose_EXP()

HYPAPI struct matrix4* matrix4_transformation_compose_EXP ( struct matrix4 self,
const struct vector3 scale,
const struct quaternion rotation,
const struct vector3 translation 
)

◆ matrix4_transformation_decompose_EXP()

HYPAPI uint8_t matrix4_transformation_decompose_EXP ( struct matrix4 self,
struct vector3 scale,
struct quaternion rotation,
struct vector3 translation 
)

◆ matrix4_translatev3()

HYPAPI struct matrix4* matrix4_translatev3 ( struct matrix4 self,
const struct vector3 translation 
)

◆ matrix4_transpose()

HYPAPI struct matrix4* matrix4_transpose ( struct matrix4 self)

◆ matrix4_view_lookat_rh_EXP()

HYPAPI struct matrix4* matrix4_view_lookat_rh_EXP ( struct matrix4 self,
const struct vector3 eye,
const struct vector3 target,
const struct vector3 up 
)

◆ matrix4_zero()

HYPAPI struct matrix4* matrix4_zero ( struct matrix4 self)

◆ quaternion_add()

HYPAPI struct quaternion* quaternion_add ( struct quaternion self,
const struct quaternion qT 
)

◆ quaternion_angle_between_EXP()

HYPAPI HYP_FLOAT quaternion_angle_between_EXP ( const struct quaternion self,
const struct quaternion qT 
)

◆ quaternion_axis_between_EXP()

HYPAPI void quaternion_axis_between_EXP ( const struct quaternion self,
const struct quaternion qT,
struct quaternion qR 
)

◆ quaternion_conjugate()

HYPAPI struct quaternion* quaternion_conjugate ( struct quaternion self)

◆ quaternion_cross_product_EXP()

HYPAPI struct quaternion quaternion_cross_product_EXP ( const struct quaternion self,
const struct quaternion vT 
)

◆ quaternion_difference_EXP()

HYPAPI HYP_FLOAT quaternion_difference_EXP ( const struct quaternion q1,
const struct quaternion q2 
)

◆ quaternion_dot_product()

HYPAPI HYP_FLOAT quaternion_dot_product ( const struct quaternion self,
const struct quaternion qT 
)

◆ quaternion_equals()

HYPAPI int quaternion_equals ( const struct quaternion self,
const struct quaternion vT 
)

◆ quaternion_get_axis_anglev3()

HYPAPI void quaternion_get_axis_anglev3 ( const struct quaternion self,
struct vector3 vR,
HYP_FLOAT angle 
)

◆ quaternion_get_euler_anglesf3()

HYPAPI void quaternion_get_euler_anglesf3 ( const struct quaternion self,
HYP_FLOAT ax,
HYP_FLOAT ay,
HYP_FLOAT az 
)

◆ quaternion_get_rotation_tov3()

HYPAPI struct quaternion* quaternion_get_rotation_tov3 ( const struct vector3 from,
const struct vector3 to,
struct quaternion qR 
)

◆ quaternion_identity()

HYPAPI struct quaternion* quaternion_identity ( struct quaternion self)

◆ quaternion_inverse()

HYPAPI struct quaternion* quaternion_inverse ( struct quaternion self)

◆ quaternion_is_pure()

HYPAPI short quaternion_is_pure ( struct quaternion self)

◆ quaternion_is_unit()

HYPAPI short quaternion_is_unit ( struct quaternion self)

◆ quaternion_lerp()

HYPAPI struct quaternion* quaternion_lerp ( const struct quaternion start,
const struct quaternion end,
HYP_FLOAT  percent,
struct quaternion qR 
)

◆ quaternion_magnitude()

HYPAPI HYP_FLOAT quaternion_magnitude ( const struct quaternion self)

◆ quaternion_multiply()

HYPAPI struct quaternion* quaternion_multiply ( struct quaternion self,
const struct quaternion qT 
)

◆ quaternion_multiplyf()

HYPAPI struct quaternion* quaternion_multiplyf ( struct quaternion self,
HYP_FLOAT  f 
)

◆ quaternion_multiplyv3()

HYPAPI struct quaternion* quaternion_multiplyv3 ( struct quaternion self,
const struct vector3 vT 
)

◆ quaternion_negate()

HYPAPI struct quaternion* quaternion_negate ( struct quaternion self)

◆ quaternion_nlerp()

HYPAPI struct quaternion* quaternion_nlerp ( const struct quaternion start,
const struct quaternion end,
HYP_FLOAT  percent,
struct quaternion qR 
)

◆ quaternion_norm()

HYPAPI HYP_FLOAT quaternion_norm ( const struct quaternion self)

◆ quaternion_normalize()

HYPAPI struct quaternion* quaternion_normalize ( struct quaternion self)

◆ quaternion_rotate_by_axis_angle_EXP()

HYPAPI struct quaternion* quaternion_rotate_by_axis_angle_EXP ( struct quaternion self,
const struct vector3 axis,
HYP_FLOAT  angle 
)

◆ quaternion_rotate_by_euler_angles_EXP()

HYPAPI struct quaternion* quaternion_rotate_by_euler_angles_EXP ( struct quaternion self,
HYP_FLOAT  ax,
HYP_FLOAT  ay,
HYP_FLOAT  az 
)

◆ quaternion_rotate_by_quaternion_EXP()

HYPAPI struct quaternion* quaternion_rotate_by_quaternion_EXP ( struct quaternion self,
const struct quaternion qT 
)

◆ quaternion_set()

HYPAPI struct quaternion* quaternion_set ( struct quaternion self,
const struct quaternion qT 
)

◆ quaternion_set_from_axis_anglef3()

HYPAPI struct quaternion* quaternion_set_from_axis_anglef3 ( struct quaternion self,
HYP_FLOAT  x,
HYP_FLOAT  y,
HYP_FLOAT  z,
HYP_FLOAT  angle 
)

◆ quaternion_set_from_axis_anglev3()

HYPAPI struct quaternion* quaternion_set_from_axis_anglev3 ( struct quaternion self,
const struct vector3 axis,
HYP_FLOAT  angle 
)

◆ quaternion_set_from_euler_anglesf3()

HYPAPI struct quaternion* quaternion_set_from_euler_anglesf3 ( struct quaternion self,
HYP_FLOAT  ax,
HYP_FLOAT  ay,
HYP_FLOAT  az 
)

◆ quaternion_setf4()

HYPAPI struct quaternion* quaternion_setf4 ( struct quaternion self,
HYP_FLOAT  x,
HYP_FLOAT  y,
HYP_FLOAT  z,
HYP_FLOAT  w 
)

◆ quaternion_slerp()

HYPAPI struct quaternion* quaternion_slerp ( const struct quaternion start,
const struct quaternion end,
HYP_FLOAT  percent,
struct quaternion qR 
)

◆ quaternion_subtract()

HYPAPI struct quaternion* quaternion_subtract ( struct quaternion self,
const struct quaternion qT 
)

◆ scalar_equals_epsilonf()

HYPAPI short scalar_equals_epsilonf ( const HYP_FLOAT  f1,
const HYP_FLOAT  f2,
const HYP_FLOAT  epsilon 
)

◆ scalar_equalsf()

HYPAPI short scalar_equalsf ( const HYP_FLOAT  f1,
const HYP_FLOAT  f2 
)

◆ vector2_add()

HYPAPI struct vector2* vector2_add ( struct vector2 self,
const struct vector2 vT 
)

◆ vector2_addf()

HYPAPI struct vector2* vector2_addf ( struct vector2 self,
HYP_FLOAT  fT 
)

◆ vector2_angle_between()

HYPAPI HYP_FLOAT vector2_angle_between ( const struct vector2 self,
const struct vector2 vT 
)

◆ vector2_cross_product()

HYPAPI struct vector2* vector2_cross_product ( struct vector2 vR,
const struct vector2 vT1,
const struct vector2 vT2 
)

◆ vector2_distance()

HYPAPI HYP_FLOAT vector2_distance ( const struct vector2 v1,
const struct vector2 v2 
)

◆ vector2_divide()

HYPAPI struct vector2* vector2_divide ( struct vector2 self,
const struct vector2 vT 
)

◆ vector2_dividef()

HYPAPI struct vector2* vector2_dividef ( struct vector2 self,
HYP_FLOAT  fT 
)

◆ vector2_dot_product()

HYPAPI HYP_FLOAT vector2_dot_product ( const struct vector2 self,
const struct vector2 vT 
)

◆ vector2_equals()

HYPAPI int vector2_equals ( const struct vector2 self,
const struct vector2 vT 
)

◆ vector2_find_normal_axis_between()

HYPAPI struct vector2* vector2_find_normal_axis_between ( struct vector2 vR,
const struct vector2 vT1,
const struct vector2 vT2 
)

◆ vector2_magnitude()

HYPAPI HYP_FLOAT vector2_magnitude ( const struct vector2 self)

◆ vector2_multiply()

HYPAPI struct vector2* vector2_multiply ( struct vector2 self,
const struct vector2 vT 
)

◆ vector2_multiplyf()

HYPAPI struct vector2* vector2_multiplyf ( struct vector2 self,
HYP_FLOAT  fT 
)

◆ vector2_multiplym2()

HYPAPI struct vector2* vector2_multiplym2 ( struct vector2 self,
const struct matrix2 mT 
)

◆ vector2_multiplym3()

HYPAPI struct vector2* vector2_multiplym3 ( struct vector2 self,
const struct matrix3 mT 
)

◆ vector2_negate()

HYPAPI struct vector2* vector2_negate ( struct vector2 self)

◆ vector2_normalize()

HYPAPI struct vector2* vector2_normalize ( struct vector2 self)

◆ vector2_set()

HYPAPI struct vector2* vector2_set ( struct vector2 self,
const struct vector2 vT 
)

◆ vector2_setf2()

HYPAPI struct vector2* vector2_setf2 ( struct vector2 self,
HYP_FLOAT  xT,
HYP_FLOAT  yT 
)

◆ vector2_subtract()

HYPAPI struct vector2* vector2_subtract ( struct vector2 self,
const struct vector2 vT 
)

◆ vector2_subtractf()

HYPAPI struct vector2* vector2_subtractf ( struct vector2 self,
HYP_FLOAT  fT 
)

◆ vector2_zero()

HYPAPI struct vector2* vector2_zero ( struct vector2 self)

◆ vector3_add()

HYPAPI struct vector3* vector3_add ( struct vector3 self,
const struct vector3 vT 
)

◆ vector3_addf()

HYPAPI struct vector3* vector3_addf ( struct vector3 self,
HYP_FLOAT  fT 
)

◆ vector3_angle_between()

HYPAPI HYP_FLOAT vector3_angle_between ( const struct vector3 self,
const struct vector3 vT 
)

◆ vector3_cross_product()

HYPAPI struct vector3* vector3_cross_product ( struct vector3 vR,
const struct vector3 vT1,
const struct vector3 vT2 
)

◆ vector3_distance()

HYPAPI HYP_FLOAT vector3_distance ( const struct vector3 v1,
const struct vector3 v2 
)

◆ vector3_divide()

HYPAPI struct vector3* vector3_divide ( struct vector3 self,
const struct vector3 vT 
)

◆ vector3_dividef()

HYPAPI struct vector3* vector3_dividef ( struct vector3 self,
HYP_FLOAT  fT 
)

◆ vector3_dot_product()

HYPAPI HYP_FLOAT vector3_dot_product ( const struct vector3 self,
const struct vector3 vT 
)

◆ vector3_equals()

HYPAPI int vector3_equals ( const struct vector3 self,
const struct vector3 vT 
)

◆ vector3_find_normal_axis_between()

HYPAPI struct vector3* vector3_find_normal_axis_between ( struct vector3 vR,
const struct vector3 vT1,
const struct vector3 vT2 
)

◆ vector3_magnitude()

HYPAPI HYP_FLOAT vector3_magnitude ( const struct vector3 self)

◆ vector3_multiply()

HYPAPI struct vector3* vector3_multiply ( struct vector3 self,
const struct vector3 vT 
)

◆ vector3_multiplyf()

HYPAPI struct vector3* vector3_multiplyf ( struct vector3 self,
HYP_FLOAT  fT 
)

◆ vector3_multiplym4()

HYPAPI struct vector3* vector3_multiplym4 ( struct vector3 self,
const struct matrix4 mT 
)

◆ vector3_negate()

HYPAPI struct vector3* vector3_negate ( struct vector3 self)

◆ vector3_normalize()

HYPAPI struct vector3* vector3_normalize ( struct vector3 self)

◆ vector3_reflect_by_quaternion()

HYPAPI struct vector3* vector3_reflect_by_quaternion ( struct vector3 self,
const struct quaternion qT 
)

◆ vector3_rotate_by_quaternion()

HYPAPI struct vector3* vector3_rotate_by_quaternion ( struct vector3 self,
const struct quaternion qT 
)

◆ vector3_set()

HYPAPI struct vector3* vector3_set ( struct vector3 self,
const struct vector3 vT 
)

◆ vector3_setf3()

HYPAPI struct vector3* vector3_setf3 ( struct vector3 self,
HYP_FLOAT  xT,
HYP_FLOAT  yT,
HYP_FLOAT  zT 
)

◆ vector3_subtract()

HYPAPI struct vector3* vector3_subtract ( struct vector3 self,
const struct vector3 vT 
)

◆ vector3_subtractf()

HYPAPI struct vector3* vector3_subtractf ( struct vector3 self,
HYP_FLOAT  fT 
)

◆ vector3_zero()

HYPAPI struct vector3* vector3_zero ( struct vector3 self)

◆ vector4_add()

HYPAPI struct vector4* vector4_add ( struct vector4 self,
const struct vector4 vT 
)

◆ vector4_addf()

HYPAPI struct vector4* vector4_addf ( struct vector4 self,
HYP_FLOAT  fT 
)

◆ vector4_cross_product()

HYPAPI struct vector4* vector4_cross_product ( struct vector4 vR,
const struct vector4 vT1,
const struct vector4 vT2 
)

◆ vector4_distance()

HYPAPI HYP_FLOAT vector4_distance ( const struct vector4 v1,
const struct vector4 v2 
)

◆ vector4_divide()

HYPAPI struct vector4* vector4_divide ( struct vector4 self,
const struct vector4 vT 
)

◆ vector4_dividef()

HYPAPI struct vector4* vector4_dividef ( struct vector4 self,
HYP_FLOAT  fT 
)

◆ vector4_dot_product()

HYPAPI HYP_FLOAT vector4_dot_product ( const struct vector4 self,
const struct vector4 vT 
)

◆ vector4_equals()

HYPAPI int vector4_equals ( const struct vector4 self,
const struct vector4 vT 
)

◆ vector4_magnitude()

HYPAPI HYP_FLOAT vector4_magnitude ( const struct vector4 self)

◆ vector4_multiply()

HYPAPI struct vector4* vector4_multiply ( struct vector4 self,
const struct vector4 vT 
)

◆ vector4_multiplyf()

HYPAPI struct vector4* vector4_multiplyf ( struct vector4 self,
HYP_FLOAT  fT 
)

◆ vector4_negate()

HYPAPI struct vector4* vector4_negate ( struct vector4 self)

◆ vector4_normalize()

HYPAPI struct vector4* vector4_normalize ( struct vector4 self)

◆ vector4_set()

HYPAPI struct vector4* vector4_set ( struct vector4 self,
const struct vector4 vT 
)

◆ vector4_setf4()

HYPAPI struct vector4* vector4_setf4 ( struct vector4 self,
HYP_FLOAT  xT,
HYP_FLOAT  yT,
HYP_FLOAT  zT,
HYP_FLOAT  wT 
)

◆ vector4_subtract()

HYPAPI struct vector4* vector4_subtract ( struct vector4 self,
const struct vector4 vT 
)

◆ vector4_subtractf()

HYPAPI struct vector4* vector4_subtractf ( struct vector4 self,
HYP_FLOAT  fT 
)

◆ vector4_zero()

HYPAPI struct vector4* vector4_zero ( struct vector4 self)