PGR Copakond OpenGL Engine - Bowling
Loading...
Searching...
No Matches
copakond::Bezier Class Reference

Bezier curve spline implementation. More...

#include <bezier.h>

Inheritance diagram for copakond::Bezier:
copakond::Spline

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 Bezier curve segment.
glm::vec3 evaluateDerivative (float localT) override
 Evaluates the tangent/derivative vector on the Bezier 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

Detailed Description

Bezier curve spline implementation.

Member Function Documentation

◆ evaluateDerivative()

glm::vec3 copakond::Bezier::evaluateDerivative ( float localT)
overrideprotectedvirtual

Evaluates the tangent/derivative vector on the Bezier curve.

*

Parameters
localTNormalized time (0.0 to 1.0) within the segment.

Implements copakond::Spline.

◆ evaluateNormal()

glm::vec3 copakond::Bezier::evaluateNormal ( float localT)
overrideprotectedvirtual

Evaluates the exact point on the Bezier curve segment.

*

Parameters
localTNormalized time (0.0 to 1.0) within the segment.

Implements copakond::Spline.

◆ Spline() [1/6]

copakond::Spline::Spline ( float duration,
std::vector< glm::vec3 > & points,
glm::vec3 & vector )

◆ Spline() [2/6]

copakond::Spline::Spline ( float duration,
std::vector< glm::vec3 > & points,
glm::vec3 & vector,
glm::vec3 & vectorDerivative )

◆ Spline() [3/6]

copakond::Spline::Spline ( float duration,
std::vector< glm::vec3 > & points,
glm::vec3 & vector,
std::function< void(glm::vec3)> applyVectorDerivative )

◆ Spline() [4/6]

copakond::Spline::Spline ( float duration,
std::vector< glm::vec3 > & points,
std::function< void(glm::vec3)> applyVector )

◆ Spline() [5/6]

copakond::Spline::Spline ( float duration,
std::vector< glm::vec3 > & points,
std::function< void(glm::vec3)> applyVector,
glm::vec3 & vectorDerivative )

◆ Spline() [6/6]

copakond::Spline::Spline ( float duration,
std::vector< glm::vec3 > & points,
std::function< void(glm::vec3)> applyVector,
std::function< void(glm::vec3)> applyVectorDerivative )

The documentation for this class was generated from the following files: