| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- /*
- * Copyright (c), Recep Aslantas.
- *
- * MIT License (MIT), http://opensource.org/licenses/MIT
- * Full license can be found in the LICENSE file
- */
- #ifndef cglm_curve_h
- #define cglm_curve_h
- #include "common.h"
- #include "vec4.h"
- #include "mat4.h"
- /*!
- * @brief helper function to calculate S*M*C multiplication for curves
- *
- * This function does not encourage you to use SMC,
- * instead it is a helper if you use SMC.
- *
- * if you want to specify S as vector then use more generic glm_mat4_rmc() func.
- *
- * Example usage:
- * B(s) = glm_smc(s, GLM_BEZIER_MAT, (vec4){p0, c0, c1, p1})
- *
- * @param[in] s parameter between 0 and 1 (this will be [s3, s2, s, 1])
- * @param[in] m basis matrix
- * @param[in] c position/control vector
- *
- * @return B(s)
- */
- CGLM_INLINE
- float
- glm_smc(float s, mat4 m, vec4 c) {
- vec4 vs;
- glm_vec4_cubic(s, vs);
- return glm_mat4_rmc(vs, m, c);
- }
- #endif /* cglm_curve_h */
|