39#define NUM_INTEGRATED_STATES 13
102 Frame(
const std::string &
name,
Frame* par=
nullptr,
bool free =
false);
247 void getStateVectorDot(std::array<floating_point, NUM_INTEGRATED_STATES> &state_dot);
Standard vector class derived from Matrix.
Definition CartesianVector.hpp:39
Class defining a direction cosine matrix inherited from Matrix.
Definition DCM.h:69
Class for inter-object communication.
Definition DataIO.hpp:60
Base class for object organization.
Definition GraphTreeObject.h:98
GraphTreeObject(const char *gt_nme="", GraphTreeObject **storage_array=nullptr, uint32 storage_size=0)
Name-based constructor for GraphTreeObject which will have no children by default.
Definition GraphTreeObject.cpp:23
const char * name() const
Getter and setter for object name.
Definition GraphTreeObject.h:135
Quaternion class for attitude representation.
Definition Quaternion.h:68
Class to define a body as a frame with mass and inertia.
Definition Body.h:44
Frame class definition.
Definition Frame.h:96
clockwerk::DataIO< clockwerk::CartesianVector< 3 > > pos_f_p__p
Definition Frame.h:136
virtual ~Frame()
Definition Frame.h:104
clockwerk::CartesianVector< 3 > parentRelAngularAcceleration()
Function to get angular acceleration relative to parent in frame coords.
Definition Frame.h:166
Frame * _parent
Variable to hold our parent.
Definition Frame.h:306
clockwerk::CartesianVector< 3 > parentRelAcceleration()
Function to get the acceleration of the frame relative to parent expressed in parent coords.
Definition Frame.h:162
clockwerk::DataIO< clockwerk::CartesianVector< 3 > > ang_vel_f_p__f
Definition Frame.h:146
void getStateVectorDot(std::array< floating_point, 13 > &state_dot)
Function to get the rate of change in the frame state vector.
Definition Frame.cpp:147
int setRootRelAttitude(const clockwerk::Quaternion &quat_f_root)
Function to set the frame's attitude relative to root.
Definition Frame.cpp:526
int calcFrameTreeExtAcceleration()
Function to recurse through the body and its children to resolve applied external forces and moments ...
Definition Frame.cpp:465
clockwerk::Quaternion rootRelQuaternion() const
Definition Frame.cpp:407
void integrator(void *integ_ptr)
Getter and setter for integrator pointer.
Definition Frame.h:233
clockwerk::DCM rootRelDCM() const
Definition Frame.cpp:426
clockwerk::DataIO< Frame * > self_id
Definition Frame.h:150
int setRootRelAngularVelocity(const clockwerk::CartesianVector< 3 > &w_f_root__f)
Function to set the frame's position relative to root.
Definition Frame.cpp:540
void setStateFromStateVector(const std::array< floating_point, 13 > &state_f_p__f)
Function to set frame state based on NUM_INTEGRATED_STATES-element state vector.
Definition Frame.cpp:219
int parent(Frame &new_parent)
Definition Frame.h:132
clockwerk::CartesianVector< 3 > _acc_f_p__p
Definition Frame.h:293
Frame * getFrameRootPointer()
Function to get a pointer to this frame's root frame.
Definition Frame.cpp:139
void setParentRelAcceleration(clockwerk::CartesianVector< 3 > accel)
Function to set parent relative acceleration of frame.
Definition Frame.h:154
clockwerk::CartesianVector< 3 > rootRelAngularAcceleration() const
Definition Frame.cpp:382
void getStateAsStateVector(std::array< floating_point, 13 > &state_f_p__f)
Function to return frame state as a NUM_INTEGRATED_STATES-element state vector.
Definition Frame.cpp:228
int calcFrameTreeExtForcesMoments()
Function to recurse through the body and its children to apply external forces and moments to the "co...
Definition Frame.cpp:432
clockwerk::DataIO< clockwerk::CartesianVector< 3 > > vel_f_p__p
Definition Frame.h:140
clockwerk::CartesianVector< 3 > rootRelVelocity() const
Definition Frame.cpp:296
clockwerk::CartesianVector< 3 > rootRelAcceleration() const
Definition Frame.cpp:335
void dump()
Dump all information associated with the frame.
Definition Frame.cpp:552
clockwerk::CartesianVector< 3 > rootRelAngularVelocity() const
Definition Frame.cpp:359
void * _integrator_ptr
Rotational.
Definition Frame.h:303
clockwerk::CartesianVector< 3 > rootRelPosition() const
Definition Frame.cpp:267
int setRootRelVelocity(const clockwerk::CartesianVector< 3 > &vel_f_root__root)
Function to set the frame's velocity relative to root.
Definition Frame.cpp:509
Joint _t_joint
Definition Frame.h:298
Joint & rJoint()
Function to get reference to the frame's rotational joint.
Definition Frame.h:122
Frame * parent()
Definition Frame.h:133
Joint _r_joint
Translational.
Definition Frame.h:299
std::vector< Frame * > frameChildren()
Return all children of the frame as a vector of frames.
Definition Frame.cpp:123
void * integrator()
Definition Frame.h:234
Frame(const std::string &name, Frame *par=nullptr, bool free=false)
Constructor for the frame object.
Definition Frame.cpp:23
void setParentRelAngularAcceleration(clockwerk::CartesianVector< 3 > alpha)
Function to set parent relative angular acceleration.
Definition Frame.h:158
int setRootRelPosition(const clockwerk::CartesianVector< 3 > &pos_f_root__root)
Function to set the frame's position relative to root.
Definition Frame.cpp:496
clockwerk::DataIO< clockwerk::Quaternion > quat_f_p
Definition Frame.h:143
Joint & tJoint()
Function to get reference to the frame's translational joint.
Definition Frame.h:118
Frame * getFrameByAddress(const std::string &address)
Function to get an object from the graph tree by string address.
Definition Frame.cpp:135
clockwerk::CartesianVector< 3 > _alpha_f_p__f
Definition Frame.h:294
Joint class defining relationship between frames.
Definition Joint.h:45
Node class to apply forces and moments to frames.
Definition Node.h:44
Class to propagate CR3BP dynamics in characteristic units.
Definition statistics.hpp:22
constexpr uint32 FRAME_MAXIMUM_NUM_CHILDREN
Definition Frame.h:42
double alpha[9]
Definition nrlmsise-00.cpp:77