#include "DirectionCosineIeqctJeqc.h" #include "EndFrameqc.h" #include "EndFrameqct.h" using namespace MbD; DirectionCosineIeqctJeqc::DirectionCosineIeqctJeqc() { } DirectionCosineIeqctJeqc::DirectionCosineIeqctJeqc(EndFrmcptr frmi, EndFrmcptr frmj, int axisi, int axisj) : DirectionCosineIeqcJeqc(frmi, frmj, axisi, axisj) { } void DirectionCosineIeqctJeqc::initialize() { DirectionCosineIeqcJeqc::initialize(); ppAijIeJepEIpt = std::make_shared>(4); ppAijIeJepEJpt = std::make_shared>(4); } void MbD::DirectionCosineIeqctJeqc::initializeGlobally() { ppAjOJepEJpEJ = std::static_pointer_cast(frmJ)->ppAjOepEpE(axisJ); } void MbD::DirectionCosineIeqctJeqc::calcPostDynCorrectorIteration() { //"ppAjOIepEIpEI is not longer constant and must be set before any calculation." ppAjOIepEIpEI = std::static_pointer_cast(frmI)->ppAjOepEpE(axisI); DirectionCosineIeqcJeqc::calcPostDynCorrectorIteration(); } void MbD::DirectionCosineIeqctJeqc::preVelIC() { Item::preVelIC(); auto pAjOIept = std::static_pointer_cast(frmI)->pAjOept(axisI); pAijIeJept = pAjOIept->dot(aAjOJe); } double MbD::DirectionCosineIeqctJeqc::pvaluept() { return pAijIeJept; } void MbD::DirectionCosineIeqctJeqc::preAccIC() { //| ppAjOIepEITpt ppAjOIeptpt ppAjOIepEITpti pAjOIept | Item::preAccIC(); auto pAjOIept = std::static_pointer_cast(frmI)->pAjOept(axisI); auto ppAjOIepEITpt = std::static_pointer_cast(frmI)->ppAjOepETpt(axisI); auto ppAjOIeptpt = std::static_pointer_cast(frmI)->ppAjOeptpt(axisI); for (int i = 0; i < 4; i++) { auto& ppAjOIepEITpti = ppAjOIepEITpt->at(i); ppAijIeJepEIpt->atiput(i, ppAjOIepEITpti->dot(aAjOJe)); } for (int i = 0; i < 4; i++) { ppAijIeJepEJpt->atiput(i, pAjOIept->dot(pAjOJepEJT->at(i))); } ppAijIeJeptpt = ppAjOIeptpt->dot(aAjOJe); }