#pragma once #include #include #include "CartesianFrame.h" #include "Part.h" #include "MarkerFrame.h" #include "EulerConstraint.h" #include "AbsConstraint.h" #include "FullColumn.h" namespace MbD { class Part; class MarkerFrame; class PartFrame : public CartesianFrame { public: PartFrame(); void setqX(FullColumn* x) { qX = x; } FullColumn* getqX() { return qX; } void setPart(std::shared_ptr x) { part = x; } std::shared_ptr getPart() { return part.lock(); } //part iqX iqE qX qE qXdot qEdot qXddot qEddot aGeu aGabs markerFrames std::weak_ptr part; int iqX, iqE; //Position index of frame variables qX and qE in system list of variables FullColumn* qX; FullColumn* qE; std::shared_ptr aGeu; std::vector> aGabs; std::vector> markerFrames; }; }