PGR Copakond OpenGL Engine - Bowling
Loading...
Searching...
No Matches
copakond::Spline Class Referenceabstract

Base class for parameterized spline animations. More...

#include <spline.h>

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

Public Member Functions

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

virtual glm::vec3 evaluateNormal (float localT)=0
virtual glm::vec3 evaluateDerivative (float localT)=0

Protected Attributes

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

Base class for parameterized spline animations.

Constructor & Destructor Documentation

◆ ~Spline()

virtual copakond::Spline::~Spline ( )
virtualdefault

◆ 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,
std::function< void(glm::vec3)> applyVector )

◆ Spline() [3/6]

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

◆ Spline() [4/6]

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

◆ Spline() [5/6]

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

◆ 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 )

Member Function Documentation

◆ evaluateDerivative()

virtual glm::vec3 copakond::Spline::evaluateDerivative ( float localT)
protectedpure virtual

◆ evaluateNormal()

virtual glm::vec3 copakond::Spline::evaluateNormal ( float localT)
protectedpure virtual

◆ pause()

void copakond::Spline::pause ( )
inline

◆ reset()

void copakond::Spline::reset ( )
inline

◆ unpause()

void copakond::Spline::unpause ( )
inline

◆ update()

void copakond::Spline::update ( float deltaTime)

Updates spline state and calculates new vectors based on time.

Parameters
deltaTimeTime elapsed since the last frame.

Member Data Documentation

◆ _P0

glm::vec3 copakond::Spline::_P0
protected

◆ _P1

glm::vec3 copakond::Spline::_P1
protected

◆ _P2

glm::vec3 copakond::Spline::_P2
protected

◆ _P3

glm::vec3 copakond::Spline::_P3
protected

◆ applyVector

std::function<void(glm::vec3)> copakond::Spline::applyVector
protected

Callback function to apply calculated position

◆ applyVectorDerivative

std::function<void(glm::vec3)> copakond::Spline::applyVectorDerivative
protected

Callback function to apply calculated tangent

◆ duration

float copakond::Spline::duration
protected

Total time to complete one full spline loop

◆ hasDerivative

bool copakond::Spline::hasDerivative
protected

◆ hasFunctionVector

bool copakond::Spline::hasFunctionVector = false
protected

◆ hasFunctionVectorDerivative

bool copakond::Spline::hasFunctionVectorDerivative = false
protected

◆ paused

bool copakond::Spline::paused = false
protected

◆ points

std::vector<glm::vec3> copakond::Spline::points
protected

◆ pointsCount

size_t copakond::Spline::pointsCount
protected

Number of control points

◆ t

float copakond::Spline::t = 0.0f
protected

Current continuous time of the spline animation

◆ vector

glm::vec3& copakond::Spline::vector
protected

◆ vectorDerivative

glm::vec3& copakond::Spline::vectorDerivative
protected

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