Interpolation functions. More...
Functions | |
| kzFloat | kzcInterpolateLinear (kzFloat value1, kzFloat value2, kzFloat t) |
| Returns linearly interpolated value between given two values. More... | |
| void | kzcInterpolateLinearVector (kzUint dimension, const kzFloat *point1, const kzFloat *point2, kzFloat t, kzFloat *out_point) |
| Returns linearly interpolated point between given two n-dimensional points. More... | |
| void | kzcInterpolateLinearVector2 (const struct KzcVector2 *const point1, const struct KzcVector2 *const point2, kzFloat t, struct KzcVector2 *out_vector) |
| Returns linearly interpolated vector between given two 2-dimensional vectors. More... | |
| void | kzcInterpolateLinearVector3 (const struct KzcVector3 *const point1, const struct KzcVector3 *const point2, kzFloat t, struct KzcVector3 *out_vector) |
| Returns linearly interpolated vector between given two 3-dimensional vectors. More... | |
| void | kzcInterpolateLinearVector4 (const struct KzcVector4 *const point1, const struct KzcVector4 *const point2, kzFloat t, struct KzcVector4 *out_vector) |
| Returns linearly interpolated vector between given two 4-dimensional vectors. More... | |
| kzFloat | kzcInterpolateBezier (kzUint degree, kzFloat *points, kzFloat t) |
| Returns arbitrary degree bezier interpolated value from given points. More... | |
| void | kzcInterpolateBezierVector (kzUint dimension, kzUint degree, const kzFloat **points, kzFloat t, kzFloat *out_point) |
| Returns arbitrary degree bezier interpolated point from given n-dimensional points. More... | |
| kzFloat | kzcInterpolateBezierQuadratic (kzFloat point1, kzFloat controlPoint, kzFloat point2, kzFloat t) |
| Returns quadratic bezier interpolated value from given points. More... | |
| void | kzcInterpolateBezierQuadraticVector (kzUint dimension, const kzFloat *point1, const kzFloat *controlPoint, const kzFloat *point2, kzFloat t, kzFloat *out_point) |
| Returns quadratic bezier interpolated point from given n-dimensional points. More... | |
| void | kzcInterpolateBezierQuadraticVector2 (const struct KzcVector2 *const point1, const struct KzcVector2 *const controlPoint, const struct KzcVector2 *const point2, kzFloat t, struct KzcVector2 *out_vector) |
| Returns quadratic bezier interpolated vector from given 2-dimensional vectors. More... | |
| void | kzcInterpolateBezierQuadraticVector3 (const struct KzcVector3 *const startPoint, const struct KzcVector3 *const controlPoint, const struct KzcVector3 *const endPoint, kzFloat t, struct KzcVector3 *out_vector) |
| Returns quadratic bezier interpolated vector from given 3-dimensional vectors. More... | |
| void | kzcInterpolateBezierQuadraticVector4 (const struct KzcVector4 *const point1, const struct KzcVector4 *const controlPoint, const struct KzcVector4 *const point2, kzFloat t, struct KzcVector4 *out_vector) |
| Returns quadratic bezier interpolated vector from given 4-dimensional vectors. More... | |
| kzFloat | kzcInterpolateBezierCubic (kzFloat point1, kzFloat controlPoint1, kzFloat controlPoint2, kzFloat point2, kzFloat t) |
| Returns cubic bezier interpolated value from given points. More... | |
| void | kzcInterpolateBezierCubicVector (kzUint dimension, const kzFloat *point1, const kzFloat *controlPoint1, const kzFloat *controlPoint2, const kzFloat *point2, kzFloat t, kzFloat *out_point) |
| Returns cubic bezier interpolated point from given n-dimensional points. More... | |
| void | kzcInterpolateBezierCubicVector2 (const struct KzcVector2 *const point1, const struct KzcVector2 *const controlPoint1, const struct KzcVector2 *const controlPoint2, const struct KzcVector2 *const point2, kzFloat t, struct KzcVector2 *out_vector) |
| Returns cubic bezier interpolated vector from given 2-dimensional vectors. More... | |
| void | kzcInterpolateBezierCubicVector3 (const struct KzcVector3 *const point1, const struct KzcVector3 *const controlPoint1, const struct KzcVector3 *const controlPoint2, const struct KzcVector3 *const point2, kzFloat t, struct KzcVector3 *out_vector) |
| Returns cubic bezier interpolated vector from given 3-dimensional vectors. More... | |
| void | kzcInterpolateBezierCubicVector4 (const struct KzcVector4 *const point1, const struct KzcVector4 *const controlPoint1, const struct KzcVector4 *const controlPoint2, const struct KzcVector4 *const point2, kzFloat t, struct KzcVector4 *out_vector) |
| Returns cubic bezier interpolated vector from given 4-dimensional vectors. More... | |
| kzFloat | kzcInterpolateHermite (kzFloat value1, kzFloat derivative1, kzFloat value2, kzFloat derivative2, kzFloat t) |
| Returns Hermite interpolated value between given two values and their derivatives. More... | |
| void | kzcInterpolateHermiteVector (kzUint dimension, const kzFloat *point1, const kzFloat *derivative1, const kzFloat *point2, const kzFloat *derivative2, kzFloat t, kzFloat *out_point) |
| Returns Hermite interpolated point between given two n-dimensional points and their derivatives. More... | |
| void | kzcInterpolateHermiteVector2 (const struct KzcVector2 *point1, const struct KzcVector2 *derivative1, const struct KzcVector2 *point2, const struct KzcVector2 *derivative2, kzFloat t, struct KzcVector2 *out_vector) |
| Returns Hermite interpolated vector between given two 2-dimensional vectors and their derivatives. More... | |
| void | kzcInterpolateHermiteVector3 (const struct KzcVector3 *point1, const struct KzcVector3 *derivative1, const struct KzcVector3 *point2, const struct KzcVector3 *derivative2, kzFloat t, struct KzcVector3 *out_vector) |
| Returns Hermite interpolated vector between given two 3-dimensional vectors and their derivatives. More... | |
| void | kzcInterpolateHermiteVector4 (const struct KzcVector4 *point1, const struct KzcVector4 *derivative1, const struct KzcVector4 *point2, const struct KzcVector4 *derivative2, kzFloat t, struct KzcVector4 *out_vector) |
| Returns Hermite interpolated vector between given two 4-dimensional vectors and their derivatives. More... | |
| kzFloat | kzcInterpolatePolynomial (kzUint degree, const kzFloat *coefficients, kzFloat t) |
| Returns evaluated value from the given polynomial. More... | |
| void | kzcInterpolatePolynomialVector (kzUint dimension, kzUint degree, const kzFloat *coefficients, kzFloat t, kzFloat *out_point) |
| Returns evaluated point from the given n-dimensional polynomial. More... | |
| kzFloat | kzcInterpolateSmoothStep (kzFloat edge1, kzFloat edge2, kzFloat t) |
| Returns smoothly interpolated value in the range [0,1] between given edges. More... | |
| kzFloat | kzcInterpolateAngle (kzFloat angle1, kzFloat angle2, kzFloat t) |
| Interpolates 2 angles, t between [0, 1]. More... | |
Interpolation functions.
Copyright 2008-2020 by Rightware. All rights reserved.
Returns linearly interpolated value between given two values.
t is clamped in the range [0,1].
| void kzcInterpolateLinearVector | ( | kzUint | dimension, |
| const kzFloat * | point1, | ||
| const kzFloat * | point2, | ||
| kzFloat | t, | ||
| kzFloat * | out_point | ||
| ) |
Returns linearly interpolated point between given two n-dimensional points.
t is clamped in the range [0,1].
| void kzcInterpolateLinearVector2 | ( | const struct KzcVector2 *const | point1, |
| const struct KzcVector2 *const | point2, | ||
| kzFloat | t, | ||
| struct KzcVector2 * | out_vector | ||
| ) |
Returns linearly interpolated vector between given two 2-dimensional vectors.
t is clamped in the range [0,1].
| void kzcInterpolateLinearVector3 | ( | const struct KzcVector3 *const | point1, |
| const struct KzcVector3 *const | point2, | ||
| kzFloat | t, | ||
| struct KzcVector3 * | out_vector | ||
| ) |
Returns linearly interpolated vector between given two 3-dimensional vectors.
t is clamped in the range [0,1].
| void kzcInterpolateLinearVector4 | ( | const struct KzcVector4 *const | point1, |
| const struct KzcVector4 *const | point2, | ||
| kzFloat | t, | ||
| struct KzcVector4 * | out_vector | ||
| ) |
Returns linearly interpolated vector between given two 4-dimensional vectors.
t is clamped in the range [0,1].
Returns arbitrary degree bezier interpolated value from given points.
First and last points are end points, all other are control points.
| void kzcInterpolateBezierVector | ( | kzUint | dimension, |
| kzUint | degree, | ||
| const kzFloat ** | points, | ||
| kzFloat | t, | ||
| kzFloat * | out_point | ||
| ) |
Returns arbitrary degree bezier interpolated point from given n-dimensional points.
| kzFloat kzcInterpolateBezierQuadratic | ( | kzFloat | point1, |
| kzFloat | controlPoint, | ||
| kzFloat | point2, | ||
| kzFloat | t | ||
| ) |
Returns quadratic bezier interpolated value from given points.
| void kzcInterpolateBezierQuadraticVector | ( | kzUint | dimension, |
| const kzFloat * | point1, | ||
| const kzFloat * | controlPoint, | ||
| const kzFloat * | point2, | ||
| kzFloat | t, | ||
| kzFloat * | out_point | ||
| ) |
Returns quadratic bezier interpolated point from given n-dimensional points.
| void kzcInterpolateBezierQuadraticVector2 | ( | const struct KzcVector2 *const | point1, |
| const struct KzcVector2 *const | controlPoint, | ||
| const struct KzcVector2 *const | point2, | ||
| kzFloat | t, | ||
| struct KzcVector2 * | out_vector | ||
| ) |
Returns quadratic bezier interpolated vector from given 2-dimensional vectors.
| void kzcInterpolateBezierQuadraticVector3 | ( | const struct KzcVector3 *const | startPoint, |
| const struct KzcVector3 *const | controlPoint, | ||
| const struct KzcVector3 *const | endPoint, | ||
| kzFloat | t, | ||
| struct KzcVector3 * | out_vector | ||
| ) |
Returns quadratic bezier interpolated vector from given 3-dimensional vectors.
| void kzcInterpolateBezierQuadraticVector4 | ( | const struct KzcVector4 *const | point1, |
| const struct KzcVector4 *const | controlPoint, | ||
| const struct KzcVector4 *const | point2, | ||
| kzFloat | t, | ||
| struct KzcVector4 * | out_vector | ||
| ) |
Returns quadratic bezier interpolated vector from given 4-dimensional vectors.
| kzFloat kzcInterpolateBezierCubic | ( | kzFloat | point1, |
| kzFloat | controlPoint1, | ||
| kzFloat | controlPoint2, | ||
| kzFloat | point2, | ||
| kzFloat | t | ||
| ) |
Returns cubic bezier interpolated value from given points.
| void kzcInterpolateBezierCubicVector | ( | kzUint | dimension, |
| const kzFloat * | point1, | ||
| const kzFloat * | controlPoint1, | ||
| const kzFloat * | controlPoint2, | ||
| const kzFloat * | point2, | ||
| kzFloat | t, | ||
| kzFloat * | out_point | ||
| ) |
Returns cubic bezier interpolated point from given n-dimensional points.
| void kzcInterpolateBezierCubicVector2 | ( | const struct KzcVector2 *const | point1, |
| const struct KzcVector2 *const | controlPoint1, | ||
| const struct KzcVector2 *const | controlPoint2, | ||
| const struct KzcVector2 *const | point2, | ||
| kzFloat | t, | ||
| struct KzcVector2 * | out_vector | ||
| ) |
Returns cubic bezier interpolated vector from given 2-dimensional vectors.
| void kzcInterpolateBezierCubicVector3 | ( | const struct KzcVector3 *const | point1, |
| const struct KzcVector3 *const | controlPoint1, | ||
| const struct KzcVector3 *const | controlPoint2, | ||
| const struct KzcVector3 *const | point2, | ||
| kzFloat | t, | ||
| struct KzcVector3 * | out_vector | ||
| ) |
Returns cubic bezier interpolated vector from given 3-dimensional vectors.
| void kzcInterpolateBezierCubicVector4 | ( | const struct KzcVector4 *const | point1, |
| const struct KzcVector4 *const | controlPoint1, | ||
| const struct KzcVector4 *const | controlPoint2, | ||
| const struct KzcVector4 *const | point2, | ||
| kzFloat | t, | ||
| struct KzcVector4 * | out_vector | ||
| ) |
Returns cubic bezier interpolated vector from given 4-dimensional vectors.
| kzFloat kzcInterpolateHermite | ( | kzFloat | value1, |
| kzFloat | derivative1, | ||
| kzFloat | value2, | ||
| kzFloat | derivative2, | ||
| kzFloat | t | ||
| ) |
Returns Hermite interpolated value between given two values and their derivatives.
t is clamped in the range [0,1].
| void kzcInterpolateHermiteVector | ( | kzUint | dimension, |
| const kzFloat * | point1, | ||
| const kzFloat * | derivative1, | ||
| const kzFloat * | point2, | ||
| const kzFloat * | derivative2, | ||
| kzFloat | t, | ||
| kzFloat * | out_point | ||
| ) |
Returns Hermite interpolated point between given two n-dimensional points and their derivatives.
t is clamped in the range [0,1].
| void kzcInterpolateHermiteVector2 | ( | const struct KzcVector2 * | point1, |
| const struct KzcVector2 * | derivative1, | ||
| const struct KzcVector2 * | point2, | ||
| const struct KzcVector2 * | derivative2, | ||
| kzFloat | t, | ||
| struct KzcVector2 * | out_vector | ||
| ) |
Returns Hermite interpolated vector between given two 2-dimensional vectors and their derivatives.
t is clamped in the range [0,1].
| void kzcInterpolateHermiteVector3 | ( | const struct KzcVector3 * | point1, |
| const struct KzcVector3 * | derivative1, | ||
| const struct KzcVector3 * | point2, | ||
| const struct KzcVector3 * | derivative2, | ||
| kzFloat | t, | ||
| struct KzcVector3 * | out_vector | ||
| ) |
Returns Hermite interpolated vector between given two 3-dimensional vectors and their derivatives.
t is clamped in the range [0,1].
| void kzcInterpolateHermiteVector4 | ( | const struct KzcVector4 * | point1, |
| const struct KzcVector4 * | derivative1, | ||
| const struct KzcVector4 * | point2, | ||
| const struct KzcVector4 * | derivative2, | ||
| kzFloat | t, | ||
| struct KzcVector4 * | out_vector | ||
| ) |
Returns Hermite interpolated vector between given two 4-dimensional vectors and their derivatives.
t is clamped in the range [0,1].
Returns evaluated value from the given polynomial.
t is clamped in the range [0,1].
| void kzcInterpolatePolynomialVector | ( | kzUint | dimension, |
| kzUint | degree, | ||
| const kzFloat * | coefficients, | ||
| kzFloat | t, | ||
| kzFloat * | out_point | ||
| ) |
Returns evaluated point from the given n-dimensional polynomial.
t is clamped in the range [0,1].
| coefficients | 2-dimensional array flattened to 1-dimensional array. coefficients[degree][dimension] -> coefficients[degree * dimension] |
Returns smoothly interpolated value in the range [0,1] between given edges.
The smoothing is calculated as specified in the OpenGL Shading Language specification. edge1 must be less than edge2. Value of the function is 0 if t <= edge1 and 1 if t >= edge2. If edge1 < t < edge2, the value is interpolated smoothly between edge1 and edge2 in a way that the derivative of the function is f'(edge1) == f'(edge2) == 0.