=encoding UTF-8 =head1 NAME BH_Vec3f - three-dimensional real vector =head1 SYNTAX #include cc prog.c -o prog -lbh =head1 DESCRIPTION The BH_Vec3f module provides a set of functions for working with three-dimensional vectors. The functions allow performing arithmetic operations, calculating scalar and vector products, normalizing vectors, and performing other vector operations. =head1 API CALLS =head2 BH_Vec3fAdd void BH_Vec3fAdd(const float a[3], const float b[3], float out[3]); Calculates the sum of two vectors I and I. The I parameter describes the resulting vector. =head2 BH_Vec3fSub void BH_Vec3fSub(const float a[3], const float b[3], float out[3]); Calculates the difference between two vectors I and I. The I parameter describes the resulting vector. =head2 BH_Vec3fMul void BH_Vec3fMul(const float a[3], const float b[3], float out[3]); Calculates the result of multiplying two vectors I and I. The I parameter describes the resulting vector. =head2 BH_Vec3fScale void BH_Vec3fScale(const float a[3], float b, float out[3]); Calculates the result of multiplying vector I by value I. The I parameter describes the resulting vector. =head2 BH_Vec3fMulAdd void BH_Vec3fMulAdd(const float a[3], const float b[3], const float c[3], float out[3]); Calculates the result of the sum I and the result of multiplying vectors I and I. The I parameter describes the resulting vector. =head2 BH_Vec3fNegate void BH_Vec3fNegate(const float in[3], float out[3]); Calculates the opposite vector from vector I. The I parameter describes the resulting vector. =head2 BH_Vec3fDot float BH_Vec3fDot(const float a[3], const float b[3]); Calculates the dot product of vectors I and I. =head2 BH_Vec3fCross void BH_Vec3fCross(const float a[3], const float b[3], float out[3]); Calculates the cross product of vectors I and I. The I parameter describes the resulting vector. =head2 BH_Vec3fLength float BH_Vec3fLength(const float in[3]); Calculates the length of vector I. =head2 BH_Vec3fNormal void BH_Vec3fNormal(const float in[3], float out[3]); Calculates the normalized form of vector I. =head2 BH_Vec3fNormalEx float BH_Vec3fNormalEx(const float in[3], float out[3]); Calculates the normalized form of vector I and returns its original length. The I parameter describes the resulting vector. =head2 BH_Vec3fMin void BH_Vec3fMin(const float a[3], const float b[3], float out[3]); Calculates the element-wise minimum of two vectors I and I. The I parameter describes the resulting vector. =head2 BH_Vec3fMax void BH_Vec3fMax(const float a[3], const float b[3], float out[3]); Calculates the element-wise maximum of two vectors I and I. The I parameter describes the resulting vector. =head2 BH_Vec3fLerp void BH_Vec3fLerp(const float a[3], const float b[3], float t, float out[3]); Performs linear interpolation between two vectors I and I with parameter I. The I parameter describes the resulting vector. =head2 BH_Vec3fProject void BH_Vec3fProject(const float a[3], const float b[3], float out[3]); Calculates the result of projecting vector I onto vector I. The I parameter describes the resulting vector. =head2 BH_Vec3fBarycentric void BH_Vec3fBarycentric(const float a[3], const float b[3], const float c[3], float v, float w, float out[3]); Calculates the vector from barycentric coordinates I, I and vectors of points I, I, I. The calculation is performed using the formula A + v*(B-A) + w*(C-A). The I parameter describes the resulting vector. =head1 SEE ALSO L