src/vector4_ptr.c file

Functions

auto vec4_add_ptr_scalar(vector4* res, const vector4* a, const vector4* b) -> VECMAT_SCALAR_API void
Performs component-wise addition of two vector4.
auto vec4_sub_ptr_scalar(vector4* res, const vector4* a, const vector4* b) -> VECMAT_SCALAR_API void
Performs component-wise subtraction of two vector4.
auto vec4_mul_scalar_ptr_scalar(vector4* res, const vector4* v, const vm_float_t s) -> VECMAT_SCALAR_API void
Performs component-wise multiplication of a vector4 by a scalar.
auto vec4_div_scalar_ptr_scalar(vector4* res, const vector4* v, const vm_float_t s) -> VECMAT_SCALAR_API void
Performs component-wise division of a vector4 by a scalar.
auto vec4_mul_ptr_scalar(vector4* res, const vector4* a, const vector4* b) -> VECMAT_SCALAR_API void
Performs component-wise multiplication of two vector4.
auto vec4_neg_ptr_scalar(vector4* res, const vector4* v) -> VECMAT_SCALAR_API void
Performs component-wise negation of a vector4.
auto vec4_abs_ptr_scalar(vector4* res, const vector4* v) -> VECMAT_SCALAR_API void
Performs component-wise absolute value on a vector4.
auto vec4_normalize_ptr_scalar(vector4* res, const vector4* v) -> VECMAT_SCALAR_API void
Normalizes a vector4 by scaling its components to unit length.
auto vec4_min_ptr_scalar(vector4* res, const vector4* a, const vector4* b) -> VECMAT_SCALAR_API void
Performs component-wise minimum of two vector4.
auto vec4_max_ptr_scalar(vector4* res, const vector4* a, const vector4* b) -> VECMAT_SCALAR_API void
Performs component-wise maximum of two vector4.
auto vec4_sign_ptr_scalar(vector4* res, const vector4* v) -> VECMAT_SCALAR_API void
Computes the component-wise sign of a vector4.
auto vec4_floor_ptr_scalar(vector4* res, const vector4* v) -> VECMAT_SCALAR_API void
Performs component-wise floor operation on a vector4.
auto vec4_ceil_ptr_scalar(vector4* res, const vector4* v) -> VECMAT_SCALAR_API void
Performs component-wise ceiling of a vector4.
auto vec4_round_ptr_scalar(vector4* res, const vector4* v) -> VECMAT_SCALAR_API void
Performs component-wise rounding of a vector4 to the nearest integer.
auto vec4_lerp_ptr_scalar(vector4* res, const vector4* a, const vector4* b, const vm_float_t t) -> VECMAT_SCALAR_API void
Performs linear interpolation between two vector4 with interpolation factor t.
auto vec4_clamp_ptr_scalar(vector4* res, const vector4* v, const vector4* min, const vector4* max) -> VECMAT_SCALAR_API void
Performs component-wise clamping of a vector4 to the specified min and max bounds.
auto vec4_homogenize_ptr_scalar(vector4* res, const vector4* v) -> VECMAT_SCALAR_API void
Homogenizes a vector4 by dividing its x, y, z components by w.
void vec4_to_vec3_ptr(vector3* res, const vector4* v)
Copies the x, y, z components from a vector4 to a vector3.
auto vec4_div_ptr_scalar(vector4* res, const vector4* a, const vector4* b) -> VECMAT_SCALAR_API void
Divides two vectors component-wise.
auto vec4_add_scalar_ptr_scalar(vector4* res, const vector4* v, const vm_float_t s) -> VECMAT_SCALAR_API void
Adds a scalar to each component.
auto vec4_sub_scalar_ptr_scalar(vector4* res, const vector4* v, const vm_float_t s) -> VECMAT_SCALAR_API void
Subtracts a scalar from each component.
auto vec4_clamp_scalar_ptr_scalar(vector4* res, const vector4* v, const vm_float_t min, const vm_float_t max) -> VECMAT_SCALAR_API void
Clamps each component to the scalar range [min, max].
auto vec4_saturate_ptr_scalar(vector4* res, const vector4* v) -> VECMAT_SCALAR_API void
Clamps each component to the range [0, 1].
auto vec4_fract_ptr_scalar(vector4* res, const vector4* v) -> VECMAT_SCALAR_API void
Returns the fractional part of each component.
void vec4_project_ptr(vector4* res, const vector4* a, const vector4* b)
Projects a onto b.
void vec4_slide_ptr(vector4* res, const vector4* v, const vector4* normal)
Removes the component of v along normal.
void vec4_reject_ptr(vector4* res, const vector4* a, const vector4* b)
Returns the component of a orthogonal to b.
void vec4_add_ptr(vector4* res, const vector4* a, const vector4* b)
Component-wise addition (dispatched).
void vec4_sub_ptr(vector4* res, const vector4* a, const vector4* b)
Component-wise subtraction (dispatched).
void vec4_mul_ptr(vector4* res, const vector4* a, const vector4* b)
Component-wise multiplication (dispatched).
void vec4_mul_scalar_ptr(vector4* res, const vector4* v, const vm_float_t s)
Multiplies a vector by a scalar (dispatched).
void vec4_div_scalar_ptr(vector4* res, const vector4* v, const vm_float_t s)
Divides a vector by a scalar (dispatched).
void vec4_neg_ptr(vector4* res, const vector4* v)
Negates a vector (dispatched).
void vec4_abs_ptr(vector4* res, const vector4* v)
Component-wise absolute value (dispatched).
void vec4_normalize_ptr(vector4* res, const vector4* v)
Normalizes a vector (dispatched).
void vec4_min_ptr(vector4* res, const vector4* a, const vector4* b)
Component-wise minimum (dispatched).
void vec4_max_ptr(vector4* res, const vector4* a, const vector4* b)
Component-wise maximum (dispatched).
void vec4_lerp_ptr(vector4* res, const vector4* a, const vector4* b, const vm_float_t t)
Linear interpolation (dispatched).
void vec4_clamp_ptr(vector4* res, const vector4* v, const vector4* min, const vector4* max)
Component-wise clamp (dispatched).
void vec4_div_ptr(vector4* res, const vector4* a, const vector4* b)
Component-wise division (dispatched).
void vec4_add_scalar_ptr(vector4* res, const vector4* v, const vm_float_t s)
Adds a scalar to each component (dispatched).
void vec4_sub_scalar_ptr(vector4* res, const vector4* v, const vm_float_t s)
Subtracts a scalar from each component (dispatched).
void vec4_clamp_scalar_ptr(vector4* res, const vector4* v, const vm_float_t min, const vm_float_t max)
Clamps each component to a scalar range (dispatched).
void vec4_saturate_ptr(vector4* res, const vector4* v)
Clamps each component to [0, 1] (dispatched).
void vec4_sign_ptr(vector4* res, const vector4* v)
Component-wise sign (dispatched).
void vec4_floor_ptr(vector4* res, const vector4* v)
Component-wise floor (dispatched).
void vec4_ceil_ptr(vector4* res, const vector4* v)
Component-wise ceil (dispatched).
void vec4_round_ptr(vector4* res, const vector4* v)
Component-wise round (dispatched).
void vec4_fract_ptr(vector4* res, const vector4* v)
Component-wise fractional part (dispatched).
void vec4_homogenize_ptr(vector4* res, const vector4* v)
Divides xyz by w (dispatched).

Function documentation

VECMAT_SCALAR_API void vec4_add_ptr_scalar(vector4* res, const vector4* a, const vector4* b)

Performs component-wise addition of two vector4.

Parameters
res Pointer to result vector4.
a Pointer to first vector4.
b Pointer to second vector4.

VECMAT_SCALAR_API void vec4_sub_ptr_scalar(vector4* res, const vector4* a, const vector4* b)

Performs component-wise subtraction of two vector4.

Parameters
res Pointer to result vector4.
a Pointer to first vector4.
b Pointer to second vector4.

VECMAT_SCALAR_API void vec4_mul_scalar_ptr_scalar(vector4* res, const vector4* v, const vm_float_t s)

Performs component-wise multiplication of a vector4 by a scalar.

Parameters
res Pointer to result vector4.
v Pointer to input vector4.
s The scalar multiplier.

VECMAT_SCALAR_API void vec4_div_scalar_ptr_scalar(vector4* res, const vector4* v, const vm_float_t s)

Performs component-wise division of a vector4 by a scalar.

Parameters
res Pointer to result vector4.
v Pointer to input vector4.
s Scalar divisor.

If the scalar is zero, sets the result vector to (0,0,0,0).

VECMAT_SCALAR_API void vec4_mul_ptr_scalar(vector4* res, const vector4* a, const vector4* b)

Performs component-wise multiplication of two vector4.

Parameters
res Pointer to result vector4.
a Pointer to first vector4.
b Pointer to second vector4.

VECMAT_SCALAR_API void vec4_neg_ptr_scalar(vector4* res, const vector4* v)

Performs component-wise negation of a vector4.

Parameters
res Pointer to result vector4.
v Pointer to input vector4.

VECMAT_SCALAR_API void vec4_abs_ptr_scalar(vector4* res, const vector4* v)

Performs component-wise absolute value on a vector4.

Parameters
res Pointer to result vector4.
v Pointer to input vector4.

VECMAT_SCALAR_API void vec4_normalize_ptr_scalar(vector4* res, const vector4* v)

Normalizes a vector4 by scaling its components to unit length.

Parameters
res Pointer to result vector4.
v Pointer to input vector4.

VECMAT_SCALAR_API void vec4_min_ptr_scalar(vector4* res, const vector4* a, const vector4* b)

Performs component-wise minimum of two vector4.

Parameters
res Pointer to result vector4.
a Pointer to first vector4.
b Pointer to second vector4.

VECMAT_SCALAR_API void vec4_max_ptr_scalar(vector4* res, const vector4* a, const vector4* b)

Performs component-wise maximum of two vector4.

Parameters
res Pointer to result vector4.
a Pointer to first vector4.
b Pointer to second vector4.

VECMAT_SCALAR_API void vec4_sign_ptr_scalar(vector4* res, const vector4* v)

Computes the component-wise sign of a vector4.

Parameters
res Pointer to result vector4.
v Pointer to input vector4.

VECMAT_SCALAR_API void vec4_floor_ptr_scalar(vector4* res, const vector4* v)

Performs component-wise floor operation on a vector4.

Parameters
res Pointer to result vector4.
v Pointer to input vector4.

VECMAT_SCALAR_API void vec4_ceil_ptr_scalar(vector4* res, const vector4* v)

Performs component-wise ceiling of a vector4.

Parameters
res Pointer to result vector4.
v Pointer to input vector4.

VECMAT_SCALAR_API void vec4_round_ptr_scalar(vector4* res, const vector4* v)

Performs component-wise rounding of a vector4 to the nearest integer.

Parameters
res Pointer to result vector4.
v Pointer to input vector4.

VECMAT_SCALAR_API void vec4_lerp_ptr_scalar(vector4* res, const vector4* a, const vector4* b, const vm_float_t t)

Performs linear interpolation between two vector4 with interpolation factor t.

Parameters
res Pointer to result vector4.
a Pointer to first vector4.
b Pointer to second vector4.
t Interpolation factor.

VECMAT_SCALAR_API void vec4_clamp_ptr_scalar(vector4* res, const vector4* v, const vector4* min, const vector4* max)

Performs component-wise clamping of a vector4 to the specified min and max bounds.

Parameters
res Pointer to result vector4.
v Pointer to input vector4.
min Pointer to minimum bounds vector4.
max Pointer to maximum bounds vector4.

VECMAT_SCALAR_API void vec4_homogenize_ptr_scalar(vector4* res, const vector4* v)

Homogenizes a vector4 by dividing its x, y, z components by w.

Parameters
res Pointer to result vector4.
v Pointer to input vector4.

If |w| > VECMAT_EPSILON and setting w to 1.0f. Otherwise, sets all components of the result to 0.0f.

void vec4_to_vec3_ptr(vector3* res, const vector4* v)

Copies the x, y, z components from a vector4 to a vector3.

Parameters
res Pointer to result vector3.
v Pointer to input vector4.

VECMAT_SCALAR_API void vec4_div_ptr_scalar(vector4* res, const vector4* a, const vector4* b)

Divides two vectors component-wise.

Parameters
res Output vector.
a First input vector.
b Second input vector.

VECMAT_SCALAR_API void vec4_add_scalar_ptr_scalar(vector4* res, const vector4* v, const vm_float_t s)

Adds a scalar to each component.

Parameters
res Output vector.
v Input vector.
s Scalar value.

VECMAT_SCALAR_API void vec4_sub_scalar_ptr_scalar(vector4* res, const vector4* v, const vm_float_t s)

Subtracts a scalar from each component.

Parameters
res Output vector.
v Input vector.
s Scalar value.

VECMAT_SCALAR_API void vec4_clamp_scalar_ptr_scalar(vector4* res, const vector4* v, const vm_float_t min, const vm_float_t max)

Clamps each component to the scalar range [min, max].

Parameters
res Output vector.
v Input vector.
min Lower bound.
max Upper bound.

VECMAT_SCALAR_API void vec4_saturate_ptr_scalar(vector4* res, const vector4* v)

Clamps each component to the range [0, 1].

Parameters
res Output vector.
v Input vector.

VECMAT_SCALAR_API void vec4_fract_ptr_scalar(vector4* res, const vector4* v)

Returns the fractional part of each component.

Parameters
res Output vector.
v Input vector.

void vec4_project_ptr(vector4* res, const vector4* a, const vector4* b)

Projects a onto b.

Parameters
res Output vector.
a First input vector.
b Second input vector.

void vec4_slide_ptr(vector4* res, const vector4* v, const vector4* normal)

Removes the component of v along normal.

Parameters
res Output vector.
v Input vector.
normal Surface normal.

void vec4_reject_ptr(vector4* res, const vector4* a, const vector4* b)

Returns the component of a orthogonal to b.

Parameters
res Output vector.
a First input vector.
b Second input vector.

void vec4_add_ptr(vector4* res, const vector4* a, const vector4* b)

Component-wise addition (dispatched).

Parameters
res Result vector.
a First vector.
b Second vector.

void vec4_sub_ptr(vector4* res, const vector4* a, const vector4* b)

Component-wise subtraction (dispatched).

Parameters
res Result vector.
a First vector.
b Second vector.

void vec4_mul_ptr(vector4* res, const vector4* a, const vector4* b)

Component-wise multiplication (dispatched).

Parameters
res Result vector.
a First vector.
b Second vector.

void vec4_mul_scalar_ptr(vector4* res, const vector4* v, const vm_float_t s)

Multiplies a vector by a scalar (dispatched).

Parameters
res Result vector.
v Input vector.
s Scalar.

void vec4_div_scalar_ptr(vector4* res, const vector4* v, const vm_float_t s)

Divides a vector by a scalar (dispatched).

Parameters
res Result vector.
v Input vector.
s Scalar.

void vec4_neg_ptr(vector4* res, const vector4* v)

Negates a vector (dispatched).

Parameters
res Result vector.
v Input vector.

void vec4_abs_ptr(vector4* res, const vector4* v)

Component-wise absolute value (dispatched).

Parameters
res Result vector.
v Input vector.

void vec4_normalize_ptr(vector4* res, const vector4* v)

Normalizes a vector (dispatched).

Parameters
res Result vector.
v Input vector.

void vec4_min_ptr(vector4* res, const vector4* a, const vector4* b)

Component-wise minimum (dispatched).

Parameters
res Result vector.
a First vector.
b Second vector.

void vec4_max_ptr(vector4* res, const vector4* a, const vector4* b)

Component-wise maximum (dispatched).

Parameters
res Result vector.
a First vector.
b Second vector.

void vec4_lerp_ptr(vector4* res, const vector4* a, const vector4* b, const vm_float_t t)

Linear interpolation (dispatched).

Parameters
res Result vector.
a First vector.
b Second vector.
t Interpolation factor.

void vec4_clamp_ptr(vector4* res, const vector4* v, const vector4* min, const vector4* max)

Component-wise clamp (dispatched).

Parameters
res Result vector.
v Input vector.
min Lower bound.
max Upper bound.

void vec4_div_ptr(vector4* res, const vector4* a, const vector4* b)

Component-wise division (dispatched).

Parameters
res Result vector.
a First vector.
b Second vector.

void vec4_add_scalar_ptr(vector4* res, const vector4* v, const vm_float_t s)

Adds a scalar to each component (dispatched).

Parameters
res Result vector.
v Input vector.
s Scalar.

void vec4_sub_scalar_ptr(vector4* res, const vector4* v, const vm_float_t s)

Subtracts a scalar from each component (dispatched).

Parameters
res Result vector.
v Input vector.
s Scalar.

void vec4_clamp_scalar_ptr(vector4* res, const vector4* v, const vm_float_t min, const vm_float_t max)

Clamps each component to a scalar range (dispatched).

Parameters
res Result vector.
v Input vector.
min Lower bound.
max Upper bound.

void vec4_saturate_ptr(vector4* res, const vector4* v)

Clamps each component to [0, 1] (dispatched).

Parameters
res Result vector.
v Input vector.

void vec4_sign_ptr(vector4* res, const vector4* v)

Component-wise sign (dispatched).

Parameters
res Result vector.
v Input vector.

void vec4_floor_ptr(vector4* res, const vector4* v)

Component-wise floor (dispatched).

Parameters
res Result vector.
v Input vector.

void vec4_ceil_ptr(vector4* res, const vector4* v)

Component-wise ceil (dispatched).

Parameters
res Result vector.
v Input vector.

void vec4_round_ptr(vector4* res, const vector4* v)

Component-wise round (dispatched).

Parameters
res Result vector.
v Input vector.

void vec4_fract_ptr(vector4* res, const vector4* v)

Component-wise fractional part (dispatched).

Parameters
res Result vector.
v Input vector.

void vec4_homogenize_ptr(vector4* res, const vector4* v)

Divides xyz by w (dispatched).

Parameters
res Result vector.
v Input vector.