qtrocket/sim/StateData.h

37 lines
890 B
C++

#ifndef STATEDATA_H
#define STATEDATA_H
// qtrocket headers
#include "utils/math/MathTypes.h"
/**
* @brief The StateData class holds physical state data. Things such as position, velocity,
* and acceleration of the center of mass, as well as orientation and orientation
* change rates.
*/
class StateData
{
public:
StateData() {}
~StateData() {}
/// TODO: Put these behind an interface
// private:
Vector3 position{0.0, 0.0, 0.0};
Vector3 velocity{0.0, 0.0, 0.0};
Quaternion orientation{0.0, 0.0, 0.0, 0.0}; /// (scalar, vector)
Quaternion orientationRate{0.0, 0.0, 0.0, 0.0}; /// (scalar, vector)
Matrix3 dcm{{0, 0, 0}, {0, 0, 0}, {0, 0, 0}};
/// Euler angles are yaw-pitch-roll, and (3-2-1) order
Vector3 eulerAngles{0.0, 0.0, 0.0};
// This is an array because the integrator expects it
double data[6];
};
#endif // STATEDATA_H