|
PGR Copakond OpenGL Engine - Bowling
|
Catmull-Rom spline implementation. More...
#include <catmullroll.h>
Public Member Functions | |
| Spline (float duration, std::vector< glm::vec3 > &points, glm::vec3 &vector) | |
| Spline (float duration, std::vector< glm::vec3 > &points, std::function< void(glm::vec3)> applyVector) | |
| Spline (float duration, std::vector< glm::vec3 > &points, glm::vec3 &vector, glm::vec3 &vectorDerivative) | |
| Spline (float duration, std::vector< glm::vec3 > &points, std::function< void(glm::vec3)> applyVector, glm::vec3 &vectorDerivative) | |
| Spline (float duration, std::vector< glm::vec3 > &points, glm::vec3 &vector, std::function< void(glm::vec3)> applyVectorDerivative) | |
| Spline (float duration, std::vector< glm::vec3 > &points, std::function< void(glm::vec3)> applyVector, std::function< void(glm::vec3)> applyVectorDerivative) | |
| Public Member Functions inherited from copakond::Spline | |
| virtual | ~Spline ()=default |
| Spline (float duration, std::vector< glm::vec3 > &points, glm::vec3 &vector) | |
| Spline (float duration, std::vector< glm::vec3 > &points, std::function< void(glm::vec3)> applyVector) | |
| Spline (float duration, std::vector< glm::vec3 > &points, glm::vec3 &vector, glm::vec3 &vectorDerivative) | |
| Spline (float duration, std::vector< glm::vec3 > &points, std::function< void(glm::vec3)> applyVector, glm::vec3 &vectorDerivative) | |
| Spline (float duration, std::vector< glm::vec3 > &points, glm::vec3 &vector, std::function< void(glm::vec3)> applyVectorDerivative) | |
| Spline (float duration, std::vector< glm::vec3 > &points, std::function< void(glm::vec3)> applyVector, std::function< void(glm::vec3)> applyVectorDerivative) | |
| void | update (float deltaTime) |
| Updates spline state and calculates new vectors based on time. | |
| void | pause () |
| void | unpause () |
| void | reset () |
Protected Member Functions | |
| glm::vec3 | evaluateNormal (float localT) override |
| Evaluates the exact point on the Catmull-Rom curve segment. | |
| glm::vec3 | evaluateDerivative (float localT) override |
| Evaluates the tangent/derivative vector on the curve. | |
Additional Inherited Members | |
| Protected Attributes inherited from copakond::Spline | |
| float | t = 0.0f |
| float | duration |
| size_t | pointsCount |
| bool | hasDerivative |
| bool | paused = false |
| bool | hasFunctionVector = false |
| bool | hasFunctionVectorDerivative = false |
| std::function< void(glm::vec3)> | applyVector |
| std::function< void(glm::vec3)> | applyVectorDerivative |
| std::vector< glm::vec3 > | points |
| glm::vec3 & | vector |
| glm::vec3 & | vectorDerivative |
| glm::vec3 | _P0 |
| glm::vec3 | _P1 |
| glm::vec3 | _P2 |
| glm::vec3 | _P3 |
Catmull-Rom spline implementation.
|
overrideprotectedvirtual |
Evaluates the tangent/derivative vector on the curve.
*
| localT | Normalized time (0.0 to 1.0) within the segment. |
Implements copakond::Spline.
|
overrideprotectedvirtual |
Evaluates the exact point on the Catmull-Rom curve segment.
*
| localT | Normalized time (0.0 to 1.0) within the segment. |
Implements copakond::Spline.
| copakond::Spline::Spline | ( | float | duration, |
| std::vector< glm::vec3 > & | points, | ||
| glm::vec3 & | vector ) |
| copakond::Spline::Spline | ( | float | duration, |
| std::vector< glm::vec3 > & | points, | ||
| glm::vec3 & | vector, | ||
| glm::vec3 & | vectorDerivative ) |
| copakond::Spline::Spline | ( | float | duration, |
| std::vector< glm::vec3 > & | points, | ||
| glm::vec3 & | vector, | ||
| std::function< void(glm::vec3)> | applyVectorDerivative ) |
| copakond::Spline::Spline | ( | float | duration, |
| std::vector< glm::vec3 > & | points, | ||
| std::function< void(glm::vec3)> | applyVector ) |
| copakond::Spline::Spline | ( | float | duration, |
| std::vector< glm::vec3 > & | points, | ||
| std::function< void(glm::vec3)> | applyVector, | ||
| glm::vec3 & | vectorDerivative ) |
| copakond::Spline::Spline | ( | float | duration, |
| std::vector< glm::vec3 > & | points, | ||
| std::function< void(glm::vec3)> | applyVector, | ||
| std::function< void(glm::vec3)> | applyVectorDerivative ) |