#include "System.h" #include "ZRotation.h" #include "FullColumn.h" #include "DirectionCosineConstraintIJ.h" #include "EndFrameqc.h" #include "EndFrameqct.h" #include "CREATE.h" using namespace MbD; ZRotation::ZRotation() { } ZRotation::ZRotation(const char* str) : PrescribedMotion(str) { } void ZRotation::initializeGlobally() { if (constraints->empty()) { initMotions(); auto dirCosCon = CREATE::ConstraintWith(frmI, frmJ, 1, 0); addConstraint(dirCosCon); System::getInstance().hasChanged = true; } else { Joint::initializeGlobally(); } } void ZRotation::initMotions() { auto xyzBlkList = std::initializer_list{ xBlk, yBlk, zBlk }; std::static_pointer_cast(frmI)->rmemBlks = (std::make_shared>(xyzBlkList)); auto xyzRotBlkList = std::initializer_list{ phiBlk, theBlk, psiBlk }; std::static_pointer_cast(frmI)->phiThePsiBlks = (std::make_shared>(xyzRotBlkList)); }