![]() |
ProtoTracer
1.0
Real-time 3D rendering and animation engine
|
A Kalman filter for quaternion smoothing. More...
#include <QuaternionKalmanFilter.h>
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 | |
Quaternion * | ShiftArray (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. | |
Quaternion * | values |
Pointer to an array of quaternion values for the filter's memory. | |
int | currentAmount = 0 |
Tracks the current number of quaternions stored in memory. | |
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.
Default constructor for QuaternionKalmanFilter
.
Initializes the filter with default parameters.
Definition at line 3 of file QuaternionKalmanFilter.cpp.
QuaternionKalmanFilter | ( | float | gain, |
int | memory | ||
) |
Constructs a QuaternionKalmanFilter
with specified parameters.
gain | The filter gain. |
memory | The size of the filter's internal memory. |
Definition at line 10 of file QuaternionKalmanFilter.cpp.
Destructor for QuaternionKalmanFilter
.
Releases allocated memory for quaternion storage.
Definition at line 17 of file QuaternionKalmanFilter.cpp.
References values.
Quaternion Filter | ( | Quaternion | value | ) |
Filters a quaternion value to reduce noise.
value | The new quaternion value to process. |
Definition at line 31 of file QuaternionKalmanFilter.cpp.
References Quaternion::Add(), currentAmount, gain, memory, ShiftArray(), Quaternion::SphericalInterpolation(), Quaternion::UnitQuaternion(), and values.
|
private |
Shifts the array to remove the oldest quaternion and make room for a new one.
arr | Array of quaternions to shift. |
Definition at line 21 of file QuaternionKalmanFilter.cpp.
References memory.
Referenced by Filter().
|
private |
Tracks the current number of quaternions stored in memory.
Definition at line 30 of file QuaternionKalmanFilter.h.
Referenced by Filter().
|
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().
|
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().
|
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().