ProtoTracer  1.0
Real-time 3D rendering and animation engine
Loading...
Searching...
No Matches
QuaternionKalmanFilter Class Reference

A Kalman filter for quaternion smoothing. More...

#include <QuaternionKalmanFilter.h>

Collaboration diagram for QuaternionKalmanFilter:

Public Member Functions

 QuaternionKalmanFilter ()
 Default constructor for QuaternionKalmanFilter.
 
 QuaternionKalmanFilter (float gain, int memory)
 Constructs a QuaternionKalmanFilter with specified parameters.
 
Quaternion Filter (Quaternion value)
 Filters a quaternion value to reduce noise.
 
 ~QuaternionKalmanFilter ()
 Destructor for QuaternionKalmanFilter.
 

Private Member Functions

QuaternionShiftArray (Quaternion arr[])
 Shifts the array to remove the oldest quaternion and make room for a new one.
 

Private Attributes

float gain
 The filter gain, controls the weight of new data versus the estimated state.
 
int memory
 The size of the internal buffer to store quaternion history.
 
Quaternionvalues
 Pointer to an array of quaternion values for the filter's memory.
 
int currentAmount = 0
 Tracks the current number of quaternions stored in memory.
 

Detailed Description

A Kalman filter for quaternion smoothing.

This class applies a Kalman filter to quaternion data to reduce noise and smooth transitions between rotations.

Definition at line 24 of file QuaternionKalmanFilter.h.

Constructor & Destructor Documentation

◆ QuaternionKalmanFilter() [1/2]

Default constructor for QuaternionKalmanFilter.

Initializes the filter with default parameters.

Definition at line 3 of file QuaternionKalmanFilter.cpp.

References gain, memory, and values.

◆ QuaternionKalmanFilter() [2/2]

QuaternionKalmanFilter ( float  gain,
int  memory 
)

Constructs a QuaternionKalmanFilter with specified parameters.

Parameters
gainThe filter gain.
memoryThe size of the filter's internal memory.

Definition at line 10 of file QuaternionKalmanFilter.cpp.

References gain, memory, and values.

◆ ~QuaternionKalmanFilter()

Destructor for QuaternionKalmanFilter.

Releases allocated memory for quaternion storage.

Definition at line 17 of file QuaternionKalmanFilter.cpp.

References values.

Member Function Documentation

◆ Filter()

Quaternion Filter ( Quaternion  value)

Filters a quaternion value to reduce noise.

Parameters
valueThe new quaternion value to process.
Returns
The filtered quaternion.

Definition at line 31 of file QuaternionKalmanFilter.cpp.

References Quaternion::Add(), currentAmount, gain, memory, ShiftArray(), Quaternion::SphericalInterpolation(), Quaternion::UnitQuaternion(), and values.

◆ ShiftArray()

Quaternion * ShiftArray ( Quaternion  arr[])
private

Shifts the array to remove the oldest quaternion and make room for a new one.

Parameters
arrArray of quaternions to shift.
Returns
Pointer to the shifted array.

Definition at line 21 of file QuaternionKalmanFilter.cpp.

References memory.

Referenced by Filter().

Member Data Documentation

◆ currentAmount

int currentAmount = 0
private

Tracks the current number of quaternions stored in memory.

Definition at line 30 of file QuaternionKalmanFilter.h.

Referenced by Filter().

◆ gain

float gain
private

The filter gain, controls the weight of new data versus the estimated state.

Definition at line 26 of file QuaternionKalmanFilter.h.

Referenced by Filter(), QuaternionKalmanFilter(), and QuaternionKalmanFilter().

◆ memory

int memory
private

The size of the internal buffer to store quaternion history.

Definition at line 27 of file QuaternionKalmanFilter.h.

Referenced by Filter(), QuaternionKalmanFilter(), QuaternionKalmanFilter(), and ShiftArray().

◆ values

Quaternion* values
private

Pointer to an array of quaternion values for the filter's memory.

Definition at line 28 of file QuaternionKalmanFilter.h.

Referenced by Filter(), QuaternionKalmanFilter(), QuaternionKalmanFilter(), and ~QuaternionKalmanFilter().


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