paul_math.h
IntroductionLinear algebra library for C/C++. DiscussionImplementation is included when PAUL_MATH_IMPLEMENTATION or PAUL_IMPLEMENTATION is defined.
GroupsMatricesMatrix types and transformation helpers (mat2/3/4) DiscussionMatrix creation and manipulation functions, plus helpers to construct translation/rotation/scale matrices, camera projection matrices (frustum, perspective, ortho) and utilities for transforming/unprojecting vectors. These functions are available when PAUL_MATH_NO_MATRICES is not defined.
VectorsVector types and helper functions (vec2, vec3, vec4) DiscussionA set of lightweight vector types and C-style helper functions for common operations (zero, length, dot, normalize, distance, clamp, lerp, etc.). These are provided for vec2, vec3 and vec4 (and integer variants where available). The functions are exported via macros for each supported size. Group members:
EasingTiming/easing functions for animations and interpolation DiscussionA set of common easing functions (linear, sine, circular, cubic, quad, exponential, back, bounce, elastic) and easing types (in, out, inout). Use `ease()` to evaluate an easing curve with the signature: ease(fn, type, t, b, c, d) where t is current time, b is start value, c is change in value, and d is duration. Typedefs
quatQuaternion type (alias for vec4) typedef vec4 quat; DiscussionA quaternion represented as a 4-component vector (x, y, z, w). Provided as an alias to vec4 for convenience when working with rotations. |