diff --git a/MbDCode/AbsConstraint.cpp b/MbDCode/AbsConstraint.cpp index 030db5f..94ad287 100644 --- a/MbDCode/AbsConstraint.cpp +++ b/MbDCode/AbsConstraint.cpp @@ -2,17 +2,18 @@ using namespace MbD; -AbsConstraint::AbsConstraint() +std::shared_ptr MbD::AbsConstraint::Create(const char* name) { - initialize(); + auto item = std::make_shared(name); + item->initialize(); + return item; } -AbsConstraint::AbsConstraint(const char* str) : Constraint(str) -{ - initialize(); -} +AbsConstraint::AbsConstraint() {} -MbD::AbsConstraint::AbsConstraint(int i) +AbsConstraint::AbsConstraint(const char* str) : Constraint(str) {} + +AbsConstraint::AbsConstraint(int i) { axis = i; } @@ -22,3 +23,7 @@ void AbsConstraint::initialize() axis = 0; iqXminusOnePlusAxis = 0; } + +void MbD::AbsConstraint::calcPostDynCorrectorIteration() +{ +} diff --git a/MbDCode/AbsConstraint.h b/MbDCode/AbsConstraint.h index 29551c7..f2923ee 100644 --- a/MbDCode/AbsConstraint.h +++ b/MbDCode/AbsConstraint.h @@ -5,10 +5,13 @@ namespace MbD { { //axis iqXminusOnePlusAxis public: + static std::shared_ptr Create(const char* name); AbsConstraint(); AbsConstraint(const char* str); AbsConstraint(int axis); void initialize(); + void calcPostDynCorrectorIteration() override; + int axis; int iqXminusOnePlusAxis; }; diff --git a/MbDCode/AnyPosICNewtonRaphson.cpp b/MbDCode/AnyPosICNewtonRaphson.cpp new file mode 100644 index 0000000..e69de29 diff --git a/MbDCode/AnyPosICNewtonRaphson.h b/MbDCode/AnyPosICNewtonRaphson.h new file mode 100644 index 0000000..2f91791 --- /dev/null +++ b/MbDCode/AnyPosICNewtonRaphson.h @@ -0,0 +1,15 @@ +#pragma once + +#include "PosNewtonRaphson.h" + +namespace MbD { + class AnyPosICNewtonRaphson : public PosNewtonRaphson + { + //nqsu qsuOld qsuWeights nSingularMatrixError + public: + int nqsu; + std::shared_ptr> qsuOld, qsuWeights; + int nSingularMatrixError; + }; +} + diff --git a/MbDCode/AtPointConstraintIJ.cpp b/MbDCode/AtPointConstraintIJ.cpp new file mode 100644 index 0000000..c4758b1 --- /dev/null +++ b/MbDCode/AtPointConstraintIJ.cpp @@ -0,0 +1,43 @@ +#include "AtPointConstraintIJ.h" +#include "DispCompIecJecO.h" + +using namespace MbD; + +std::shared_ptr MbD::AtPointConstraintIJ::Create(EndFrmcptr frmi, EndFrmcptr frmj, int axisi) +{ + auto item = std::make_shared(frmi, frmj, axisi); + item->initialize(); + return item; +} + +AtPointConstraintIJ::AtPointConstraintIJ(EndFrmcptr frmi, EndFrmcptr frmj, int axisi) : + ConstraintIJ(frmi, frmj), axis(axisi) +{ +} + +void AtPointConstraintIJ::initialize() +{ +} + +void MbD::AtPointConstraintIJ::initializeLocally() +{ + riIeJeO->initializeLocally(); +} + +void MbD::AtPointConstraintIJ::initializeGlobally() +{ + riIeJeO->initializeGlobally(); +} + +void AtPointConstraintIJ::initriIeJeO() +{ + riIeJeO = std::make_shared(); +} + +void MbD::AtPointConstraintIJ::postInput() +{ +} + +void MbD::AtPointConstraintIJ::calcPostDynCorrectorIteration() +{ +} diff --git a/MbDCode/AtPointConstraintIJ.h b/MbDCode/AtPointConstraintIJ.h new file mode 100644 index 0000000..bc05668 --- /dev/null +++ b/MbDCode/AtPointConstraintIJ.h @@ -0,0 +1,25 @@ +#pragma once + +#include "ConstraintIJ.h" + +namespace MbD { + class DispCompIecJecO; + + class AtPointConstraintIJ : public ConstraintIJ + { + //axis riIeJeO + public: + static std::shared_ptr Create(EndFrmcptr frmi, EndFrmcptr frmj, int axisi); + AtPointConstraintIJ(EndFrmcptr frmi, EndFrmcptr frmj, int axisi); + void initialize(); + void initializeLocally() override; + void initializeGlobally() override; + virtual void initriIeJeO(); + void postInput() override; + void calcPostDynCorrectorIteration() override; + + int axis; + std::shared_ptr riIeJeO; + }; +} + diff --git a/MbDCode/AtPointConstraintIqcJc.cpp b/MbDCode/AtPointConstraintIqcJc.cpp new file mode 100644 index 0000000..0578a64 --- /dev/null +++ b/MbDCode/AtPointConstraintIqcJc.cpp @@ -0,0 +1,22 @@ +#include "AtPointConstraintIqcJc.h" +#include "DispCompIeqcJecO.h" + +using namespace MbD; + +AtPointConstraintIqcJc::AtPointConstraintIqcJc(EndFrmcptr frmi, EndFrmcptr frmj, int axisi) : + AtPointConstraintIJ(frmi, frmj, axisi) +{ +} + +void AtPointConstraintIqcJc::initialize() +{ +} + +void AtPointConstraintIqcJc::initriIeJeO() +{ + riIeJeO = std::make_shared(); +} + +void MbD::AtPointConstraintIqcJc::calcPostDynCorrectorIteration() +{ +} diff --git a/MbDCode/AtPointConstraintIqcJc.h b/MbDCode/AtPointConstraintIqcJc.h new file mode 100644 index 0000000..0c9fe5b --- /dev/null +++ b/MbDCode/AtPointConstraintIqcJc.h @@ -0,0 +1,20 @@ +#pragma once + +#include "AtPointConstraintIJ.h" + +namespace MbD { + class AtPointConstraintIqcJc : public AtPointConstraintIJ + { + //pGpEI ppGpEIpEI iqXIminusOnePlusAxis iqEI + public: + AtPointConstraintIqcJc(EndFrmcptr frmi, EndFrmcptr frmj, int axisi); + void initialize(); + void initriIeJeO() override; + void calcPostDynCorrectorIteration() override; + + FRowDsptr pGpEI; + FMatDsptr ppGpEIpEI; + int iqXIminusOnePlusAxis, iqEI; + }; +} + diff --git a/MbDCode/AtPointConstraintIqcJqc.cpp b/MbDCode/AtPointConstraintIqcJqc.cpp new file mode 100644 index 0000000..a9467c8 --- /dev/null +++ b/MbDCode/AtPointConstraintIqcJqc.cpp @@ -0,0 +1,22 @@ +#include "AtPointConstraintIqcJqc.h" +#include "DispCompIeqcJeqcO.h" + +using namespace MbD; + +AtPointConstraintIqcJqc::AtPointConstraintIqcJqc(EndFrmcptr frmi, EndFrmcptr frmj, int axisi) : + AtPointConstraintIqcJc(frmi, frmj, axisi) +{ +} + +void AtPointConstraintIqcJqc::initialize() +{ +} + +void AtPointConstraintIqcJqc::initriIeJeO() +{ + riIeJeO = std::make_shared(); +} + +void MbD::AtPointConstraintIqcJqc::calcPostDynCorrectorIteration() +{ +} diff --git a/MbDCode/AtPointConstraintIqcJqc.h b/MbDCode/AtPointConstraintIqcJqc.h new file mode 100644 index 0000000..6f4a79b --- /dev/null +++ b/MbDCode/AtPointConstraintIqcJqc.h @@ -0,0 +1,20 @@ +#pragma once + +#include "AtPointConstraintIqcJc.h" + +namespace MbD { + class AtPointConstraintIqcJqc : public AtPointConstraintIqcJc + { + //pGpEJ ppGpEJpEJ iqXJminusOnePlusAxis iqEJ + public: + AtPointConstraintIqcJqc(EndFrmcptr frmi, EndFrmcptr frmj, int axisi); + void initialize(); + void initriIeJeO() override; + void calcPostDynCorrectorIteration() override; + + FRowDsptr pGpEJ; + FMatDsptr ppGpEJpEJ; + int iqXJminusOnePlusAxis, iqEJ; + }; +} + diff --git a/MbDCode/AtPointConstraintIqctJqc.cpp b/MbDCode/AtPointConstraintIqctJqc.cpp new file mode 100644 index 0000000..d5ef975 --- /dev/null +++ b/MbDCode/AtPointConstraintIqctJqc.cpp @@ -0,0 +1,22 @@ +#include "AtPointConstraintIqctJqc.h" +#include "DispCompIeqctJeqcO.h" + +using namespace MbD; + +AtPointConstraintIqctJqc::AtPointConstraintIqctJqc(EndFrmcptr frmi, EndFrmcptr frmj, int axisi) : + AtPointConstraintIqcJqc(frmi, frmj, axisi) +{ +} + +void AtPointConstraintIqctJqc::initialize() +{ +} + +void AtPointConstraintIqctJqc::initriIeJeO() +{ + riIeJeO = std::make_shared(); +} + +void MbD::AtPointConstraintIqctJqc::calcPostDynCorrectorIteration() +{ +} diff --git a/MbDCode/AtPointConstraintIqctJqc.h b/MbDCode/AtPointConstraintIqctJqc.h new file mode 100644 index 0000000..9412e4f --- /dev/null +++ b/MbDCode/AtPointConstraintIqctJqc.h @@ -0,0 +1,20 @@ +#pragma once + +#include "AtPointConstraintIqcJqc.h" + +namespace MbD { + class AtPointConstraintIqctJqc : public AtPointConstraintIqcJqc + { + //pGpt ppGpEIpt ppGptpt + public: + AtPointConstraintIqctJqc(EndFrmcptr frmi, EndFrmcptr frmj, int axisi); + void initialize(); + void initriIeJeO() override; + void calcPostDynCorrectorIteration() override; + + double pGpt; + FRowDsptr ppGpEIpt; + double ppGptpt; + }; +} + diff --git a/MbDCode/BasicIntegrator.cpp b/MbDCode/BasicIntegrator.cpp new file mode 100644 index 0000000..26b6e87 --- /dev/null +++ b/MbDCode/BasicIntegrator.cpp @@ -0,0 +1 @@ +#include "BasicIntegrator.h" diff --git a/MbDCode/BasicIntegrator.h b/MbDCode/BasicIntegrator.h new file mode 100644 index 0000000..3914a6b --- /dev/null +++ b/MbDCode/BasicIntegrator.h @@ -0,0 +1,13 @@ +#pragma once + +#include "Integrator.h" + +namespace MbD { + class BasicIntegrator : public Integrator + { + // + public: + + }; +} + diff --git a/MbDCode/BasicQuasiIntegrator.cpp b/MbDCode/BasicQuasiIntegrator.cpp new file mode 100644 index 0000000..5d408ea --- /dev/null +++ b/MbDCode/BasicQuasiIntegrator.cpp @@ -0,0 +1 @@ +#include "BasicQuasiIntegrator.h" diff --git a/MbDCode/BasicQuasiIntegrator.h b/MbDCode/BasicQuasiIntegrator.h new file mode 100644 index 0000000..6b8f0d8 --- /dev/null +++ b/MbDCode/BasicQuasiIntegrator.h @@ -0,0 +1,13 @@ +#pragma once + +#include "BasicIntegrator.h" + +namespace MbD { + class BasicQuasiIntegrator : public BasicIntegrator + { + // + public: + + }; +} + diff --git a/MbDCode/CREATE.cpp b/MbDCode/CREATE.cpp new file mode 100644 index 0000000..5a4110e --- /dev/null +++ b/MbDCode/CREATE.cpp @@ -0,0 +1 @@ +#include "CREATE.h" diff --git a/MbDCode/CREATE.h b/MbDCode/CREATE.h new file mode 100644 index 0000000..2166532 --- /dev/null +++ b/MbDCode/CREATE.h @@ -0,0 +1,21 @@ +#pragma once +#include + +namespace MbD { + + template + class CREATE { + public: + static std::shared_ptr With(const char* name) { + auto inst = std::make_shared(name); + inst->initialize(); + return inst; + } + static std::shared_ptr With() { + auto inst = std::make_shared(); + inst->initialize(); + return inst; + } + }; +} + diff --git a/MbDCode/Constant.cpp b/MbDCode/Constant.cpp index 8f7cbc5..a25769a 100644 --- a/MbDCode/Constant.cpp +++ b/MbDCode/Constant.cpp @@ -10,7 +10,7 @@ Constant::Constant(double val) : Variable(val) { } -std::shared_ptr MbD::Constant::differentiateWRT(std::shared_ptr var) +std::shared_ptr Constant::differentiateWRT(std::shared_ptr var) { return std::make_shared(0.0); } diff --git a/MbDCode/Constraint.cpp b/MbDCode/Constraint.cpp index 377fd05..403d87f 100644 --- a/MbDCode/Constraint.cpp +++ b/MbDCode/Constraint.cpp @@ -5,12 +5,10 @@ using namespace MbD; Constraint::Constraint() { - initialize(); } Constraint::Constraint(const char* str) : Item(str) { - initialize(); } void Constraint::initialize() @@ -20,6 +18,10 @@ void Constraint::initialize() lam = 0.0; } +void MbD::Constraint::postInput() +{ +} + void Constraint::setOwner(Item* x) { owner = x; diff --git a/MbDCode/Constraint.h b/MbDCode/Constraint.h index eef8945..23c6f95 100644 --- a/MbDCode/Constraint.h +++ b/MbDCode/Constraint.h @@ -11,6 +11,7 @@ namespace MbD { Constraint(); Constraint(const char* str); void initialize(); + void postInput() override; void setOwner(Item* x); Item* getOwner(); diff --git a/MbDCode/ConstraintIJ.cpp b/MbDCode/ConstraintIJ.cpp index e065d91..ad2fae6 100644 --- a/MbDCode/ConstraintIJ.cpp +++ b/MbDCode/ConstraintIJ.cpp @@ -3,7 +3,12 @@ using namespace MbD; -MbD::ConstraintIJ::ConstraintIJ(EndFrmcptr frmi, EndFrmcptr frmj) : frmI(frmi), frmJ(frmj) +ConstraintIJ::ConstraintIJ(EndFrmcptr frmi, EndFrmcptr frmj) : frmI(frmi), frmJ(frmj) +{ + aConstant = 0.0; +} + +void ConstraintIJ::initialize() { aConstant = 0.0; } diff --git a/MbDCode/ConstraintIJ.h b/MbDCode/ConstraintIJ.h index 12ffeff..77059b1 100644 --- a/MbDCode/ConstraintIJ.h +++ b/MbDCode/ConstraintIJ.h @@ -1,8 +1,7 @@ #pragma once -//#include "typedef.h" #include "Constraint.h" -#include "EndFramec.h" +#include "EndFramec.h" //EndFrmcptr is defined namespace MbD { class ConstraintIJ : public Constraint @@ -10,6 +9,7 @@ namespace MbD { //frmI frmJ aConstant public: ConstraintIJ(EndFrmcptr frmi, EndFrmcptr frmj); + void initialize(); EndFrmcptr frmI, frmJ; double aConstant; diff --git a/MbDCode/CylindricalJoint.cpp b/MbDCode/CylindricalJoint.cpp index 80af383..5e90d42 100644 --- a/MbDCode/CylindricalJoint.cpp +++ b/MbDCode/CylindricalJoint.cpp @@ -1,15 +1,27 @@ #include "CylindricalJoint.h" +#include "System.h" +#include "DirectionCosineConstraintIJ.h" +#include "TranslationConstraintIJ.h" using namespace MbD; CylindricalJoint::CylindricalJoint() { - initialize(); } CylindricalJoint::CylindricalJoint(const char* str) : Joint(str) { - initialize(); } -void CylindricalJoint::initialize() +void MbD::CylindricalJoint::initializeGlobally() { + if (!constraints) + { + addConstraint(std::make_shared (frmI, frmJ, 1)); + addConstraint(std::make_shared (frmI, frmJ, 2)); + addConstraint(std::make_shared(frmI, frmJ, 3, 1)); + addConstraint(std::make_shared(frmI, frmJ, 3, 2)); + System::getInstance().hasChanged = true; + } + else { + Joint::initializeGlobally(); + } } diff --git a/MbDCode/CylindricalJoint.h b/MbDCode/CylindricalJoint.h index 5901fe5..5811e28 100644 --- a/MbDCode/CylindricalJoint.h +++ b/MbDCode/CylindricalJoint.h @@ -6,9 +6,10 @@ namespace MbD { { //frmI frmJ constraints friction public: + static std::shared_ptr Create(const char* name); CylindricalJoint(); CylindricalJoint(const char* str); - void initialize(); + void initializeGlobally(); }; } diff --git a/MbDCode/DiagonalMatrix.h b/MbDCode/DiagonalMatrix.h index b2b5bc8..f25ec35 100644 --- a/MbDCode/DiagonalMatrix.h +++ b/MbDCode/DiagonalMatrix.h @@ -4,6 +4,10 @@ namespace MbD { template class DiagonalMatrix : public Array { + // + public: + DiagonalMatrix(size_t count) : Array(count) {} + DiagonalMatrix(std::initializer_list list) : Array{ list } {} }; } diff --git a/MbDCode/DirectionCosineConstraintIJ.cpp b/MbDCode/DirectionCosineConstraintIJ.cpp index bb544bb..daa24ce 100644 --- a/MbDCode/DirectionCosineConstraintIJ.cpp +++ b/MbDCode/DirectionCosineConstraintIJ.cpp @@ -1,10 +1,44 @@ #include "DirectionCosineConstraintIJ.h" +#include "DirectionCosineIecJec.h" #include "EndFramec.h" using namespace MbD; -DirectionCosineConstraintIJ::DirectionCosineConstraintIJ(EndFrmcptr frmi, EndFrmcptr frmj, int axisi, int axisj) : - ConstraintIJ(frmI, frmJ), axisI(axisi), axisJ(axisj) +std::shared_ptr MbD::DirectionCosineConstraintIJ::Create(EndFrmcptr frmi, EndFrmcptr frmj, int axisi, int axisj) +{ + auto item = std::make_shared(frmi, frmj, axisi, axisj); + item->initialize(); + return item; +} + +DirectionCosineConstraintIJ::DirectionCosineConstraintIJ(EndFrmcptr frmi, EndFrmcptr frmj, int axisi, int axisj) : + ConstraintIJ(frmi, frmj), axisI(axisi), axisJ(axisj) +{ +} + +void DirectionCosineConstraintIJ::initialize() +{ +} + +void MbD::DirectionCosineConstraintIJ::initializeLocally() +{ + aAijIeJe->initializeLocally(); +} + +void MbD::DirectionCosineConstraintIJ::initializeGlobally() +{ + aAijIeJe->initializeGlobally(); +} + +void DirectionCosineConstraintIJ::initaAijIeJe() +{ + aAijIeJe = std::make_shared(); +} + +void MbD::DirectionCosineConstraintIJ::postInput() +{ +} + +void MbD::DirectionCosineConstraintIJ::calcPostDynCorrectorIteration() { - aAijIeJe = std::make_shared(frmI, frmJ, axisI, axisJ); } diff --git a/MbDCode/DirectionCosineConstraintIJ.h b/MbDCode/DirectionCosineConstraintIJ.h index 0a0f330..62c805d 100644 --- a/MbDCode/DirectionCosineConstraintIJ.h +++ b/MbDCode/DirectionCosineConstraintIJ.h @@ -1,15 +1,22 @@ #pragma once #include "ConstraintIJ.h" -#include "DirectionCosineIecJec.h" namespace MbD { + class DirectionCosineIecJec; + class DirectionCosineConstraintIJ : public ConstraintIJ { //axisI axisJ aAijIeJe public: - // self owns : (MbDDirectionCosineConstraintIJ withFrmI : frmI frmJ : frmJ axisI : 2 axisJ : 1). - DirectionCosineConstraintIJ(EndFrmcptr frmI, EndFrmcptr frmJ, int axisI, int axisJ); + static std::shared_ptr Create(EndFrmcptr frmi, EndFrmcptr frmj, int axisi, int axisj); + DirectionCosineConstraintIJ(EndFrmcptr frmi, EndFrmcptr frmj, int axisi, int axisj); + void initialize(); + void initializeLocally() override; + void initializeGlobally() override; + virtual void initaAijIeJe(); + void postInput() override; + void calcPostDynCorrectorIteration() override; int axisI, axisJ; std::shared_ptr aAijIeJe; diff --git a/MbDCode/DirectionCosineConstraintIqcJc.cpp b/MbDCode/DirectionCosineConstraintIqcJc.cpp new file mode 100644 index 0000000..ca2caea --- /dev/null +++ b/MbDCode/DirectionCosineConstraintIqcJc.cpp @@ -0,0 +1,22 @@ +#include "DirectionCosineConstraintIqcJc.h" +#include "DirectionCosineIeqcJec.h" + +using namespace MbD; + +DirectionCosineConstraintIqcJc::DirectionCosineConstraintIqcJc(EndFrmcptr frmi, EndFrmcptr frmj, int axisi, int axisj) : + DirectionCosineConstraintIJ(frmi, frmj, axisi, axisj) +{ +} + +void DirectionCosineConstraintIqcJc::initialize() +{ +} + +void DirectionCosineConstraintIqcJc::initaAijIeJe() +{ + aAijIeJe = std::make_shared(); +} + +void MbD::DirectionCosineConstraintIqcJc::calcPostDynCorrectorIteration() +{ +} diff --git a/MbDCode/DirectionCosineConstraintIqcJc.h b/MbDCode/DirectionCosineConstraintIqcJc.h new file mode 100644 index 0000000..28f1783 --- /dev/null +++ b/MbDCode/DirectionCosineConstraintIqcJc.h @@ -0,0 +1,20 @@ +#pragma once + +#include "DirectionCosineConstraintIJ.h" + +namespace MbD { + class DirectionCosineConstraintIqcJc : public DirectionCosineConstraintIJ + { + //pGpEI ppGpEIpEI iqEI + public: + DirectionCosineConstraintIqcJc(EndFrmcptr frmi, EndFrmcptr frmj, int axisi, int axisj); + void initialize(); + void initaAijIeJe() override; + void calcPostDynCorrectorIteration() override; + + FRowDsptr pGpEI; + FMatDsptr ppGpEIpEI; + int iqEI; + }; +} + diff --git a/MbDCode/DirectionCosineConstraintIqcJqc.cpp b/MbDCode/DirectionCosineConstraintIqcJqc.cpp new file mode 100644 index 0000000..7391e0e --- /dev/null +++ b/MbDCode/DirectionCosineConstraintIqcJqc.cpp @@ -0,0 +1,22 @@ +#include "DirectionCosineConstraintIqcJqc.h" +#include "DirectionCosineIeqcJeqc.h" + +using namespace MbD; + +DirectionCosineConstraintIqcJqc::DirectionCosineConstraintIqcJqc(EndFrmcptr frmi, EndFrmcptr frmj, int axisi, int axisj) : + DirectionCosineConstraintIqcJc(frmi, frmj, axisi, axisj) +{ +} + +void DirectionCosineConstraintIqcJqc::initialize() +{ +} + +void DirectionCosineConstraintIqcJqc::initaAijIeJe() +{ + aAijIeJe = std::make_shared(); +} + +void MbD::DirectionCosineConstraintIqcJqc::calcPostDynCorrectorIteration() +{ +} diff --git a/MbDCode/DirectionCosineConstraintIqcJqc.h b/MbDCode/DirectionCosineConstraintIqcJqc.h new file mode 100644 index 0000000..57f1eb5 --- /dev/null +++ b/MbDCode/DirectionCosineConstraintIqcJqc.h @@ -0,0 +1,21 @@ +#pragma once + +#include "DirectionCosineConstraintIqcJc.h" + +namespace MbD { + class DirectionCosineConstraintIqcJqc : public DirectionCosineConstraintIqcJc + { + //pGpEJ ppGpEIpEJ ppGpEJpEJ iqEJ + public: + DirectionCosineConstraintIqcJqc(EndFrmcptr frmi, EndFrmcptr frmj, int axisi, int axisj); + void initialize(); + void initaAijIeJe() override; + void calcPostDynCorrectorIteration() override; + + FRowDsptr pGpEJ; + FMatDsptr ppGpEIpEJ; + FMatDsptr ppGpEJpEJ; + int iqEJ; + }; +} + diff --git a/MbDCode/DirectionCosineConstraintIqctJqc.cpp b/MbDCode/DirectionCosineConstraintIqctJqc.cpp new file mode 100644 index 0000000..57fb084 --- /dev/null +++ b/MbDCode/DirectionCosineConstraintIqctJqc.cpp @@ -0,0 +1,22 @@ +#include "DirectionCosineConstraintIqctJqc.h" +#include "DirectionCosineIeqctJeqc.h" + +using namespace MbD; + +DirectionCosineConstraintIqctJqc::DirectionCosineConstraintIqctJqc(EndFrmcptr frmi, EndFrmcptr frmj, int axisi, int axisj) : + DirectionCosineConstraintIqcJqc(frmi, frmj, axisi, axisj) +{ +} + +void DirectionCosineConstraintIqctJqc::initialize() +{ +} + +void DirectionCosineConstraintIqctJqc::initaAijIeJe() +{ + aAijIeJe = std::make_shared(); +} + +void MbD::DirectionCosineConstraintIqctJqc::calcPostDynCorrectorIteration() +{ +} diff --git a/MbDCode/DirectionCosineConstraintIqctJqc.h b/MbDCode/DirectionCosineConstraintIqctJqc.h new file mode 100644 index 0000000..3283486 --- /dev/null +++ b/MbDCode/DirectionCosineConstraintIqctJqc.h @@ -0,0 +1,20 @@ +#pragma once + +#include "DirectionCosineConstraintIqcJqc.h" + +namespace MbD { + class DirectionCosineConstraintIqctJqc : public DirectionCosineConstraintIqcJqc + { + //pGpt ppGpEIpt ppGpEJpt ppGptpt + public: + DirectionCosineConstraintIqctJqc(EndFrmcptr frmi, EndFrmcptr frmj, int axisi, int axisj); + void initialize(); + void initaAijIeJe() override; + void calcPostDynCorrectorIteration() override; + + double pGpt; + FRowDsptr ppGpEIpt; + FRowDsptr ppGpEJpt; + double ppGptpt; + }; +} diff --git a/MbDCode/DirectionCosineIecJec.cpp b/MbDCode/DirectionCosineIecJec.cpp index b84a0c6..16f2623 100644 --- a/MbDCode/DirectionCosineIecJec.cpp +++ b/MbDCode/DirectionCosineIecJec.cpp @@ -5,14 +5,23 @@ using namespace MbD; -MbD::DirectionCosineIecJec::DirectionCosineIecJec() +DirectionCosineIecJec::DirectionCosineIecJec() { } -MbD::DirectionCosineIecJec::DirectionCosineIecJec(EndFrmcptr frmi, EndFrmcptr frmj, int axisi, int axisj) : +DirectionCosineIecJec::DirectionCosineIecJec(EndFrmcptr frmi, EndFrmcptr frmj, int axisi, int axisj) : KinematicIeJe(frmi, frmj), axisI(axisi), axisJ(axisj) +{ + +} + +void MbD::DirectionCosineIecJec::initialize() { aAijIeJe = 0.0; aAjOIe = std::make_shared>(3); aAjOJe = std::make_shared>(3); } + +void MbD::DirectionCosineIecJec::calcPostDynCorrectorIteration() +{ +} diff --git a/MbDCode/DirectionCosineIecJec.h b/MbDCode/DirectionCosineIecJec.h index d76a874..25a044b 100644 --- a/MbDCode/DirectionCosineIecJec.h +++ b/MbDCode/DirectionCosineIecJec.h @@ -2,16 +2,19 @@ #include #include "KinematicIeJe.h" -//#include "EndFramec.h" -#include "FullColumn.h" namespace MbD { + template + class FullColumn; + class DirectionCosineIecJec : public KinematicIeJe { //aAijIeJe axisI axisJ aAjOIe aAjOJe public: DirectionCosineIecJec(); - DirectionCosineIecJec(EndFrmcptr frmI, EndFrmcptr frmJ, int axisI, int axisJ); + DirectionCosineIecJec(EndFrmcptr frmi, EndFrmcptr frmj, int axisi, int axisj); + void initialize(); + void calcPostDynCorrectorIteration() override; int axisI, axisJ; double aAijIeJe; diff --git a/MbDCode/DirectionCosineIeqcJec.cpp b/MbDCode/DirectionCosineIeqcJec.cpp index ead28b8..ff6048e 100644 --- a/MbDCode/DirectionCosineIeqcJec.cpp +++ b/MbDCode/DirectionCosineIeqcJec.cpp @@ -1,14 +1,28 @@ #include "DirectionCosineIeqcJec.h" +#include "EndFrameqc.h" using namespace MbD; -MbD::DirectionCosineIeqcJec::DirectionCosineIeqcJec() +DirectionCosineIeqcJec::DirectionCosineIeqcJec() { - initialize(); } -void MbD::DirectionCosineIeqcJec::initialize() +DirectionCosineIeqcJec::DirectionCosineIeqcJec(EndFrmcptr frmi, EndFrmcptr frmj, int axisi, int axisj) : + DirectionCosineIecJec(frmi, frmj, axisi, axisj) +{ +} + +void DirectionCosineIeqcJec::initialize() { pAijIeJepEI = std::make_shared>(4); ppAijIeJepEIpEI = std::make_shared>(4, 4); } + +void MbD::DirectionCosineIeqcJec::initializeGlobally() +{ + ppAjOIepEIpEI = std::static_pointer_cast(frmI)->ppAjOepEpE(axisI); +} + +void MbD::DirectionCosineIeqcJec::calcPostDynCorrectorIteration() +{ +} diff --git a/MbDCode/DirectionCosineIeqcJec.h b/MbDCode/DirectionCosineIeqcJec.h index 59f1446..3eb5e21 100644 --- a/MbDCode/DirectionCosineIeqcJec.h +++ b/MbDCode/DirectionCosineIeqcJec.h @@ -8,7 +8,10 @@ namespace MbD { //pAijIeJepEI ppAijIeJepEIpEI pAjOIepEIT ppAjOIepEIpEI public: DirectionCosineIeqcJec(); + DirectionCosineIeqcJec(EndFrmcptr frmi, EndFrmcptr frmj, int axisi, int axisj); void initialize(); + void initializeGlobally(); + void calcPostDynCorrectorIteration() override; FRowDsptr pAijIeJepEI; FMatDsptr ppAijIeJepEIpEI; diff --git a/MbDCode/DirectionCosineIeqcJeqc.cpp b/MbDCode/DirectionCosineIeqcJeqc.cpp index ba59a9c..656ce0a 100644 --- a/MbDCode/DirectionCosineIeqcJeqc.cpp +++ b/MbDCode/DirectionCosineIeqcJeqc.cpp @@ -1,15 +1,30 @@ #include "DirectionCosineIeqcJeqc.h" +#include "EndFrameqc.h" using namespace MbD; -MbD::DirectionCosineIeqcJeqc::DirectionCosineIeqcJeqc() +DirectionCosineIeqcJeqc::DirectionCosineIeqcJeqc() { - initialize(); } -void MbD::DirectionCosineIeqcJeqc::initialize() +DirectionCosineIeqcJeqc::DirectionCosineIeqcJeqc(EndFrmcptr frmi, EndFrmcptr frmj, int axisi, int axisj) : + DirectionCosineIeqcJec(frmi, frmj, axisi, axisj) +{ +} + +void DirectionCosineIeqcJeqc::initialize() { pAijIeJepEJ = std::make_shared>(4); ppAijIeJepEIpEJ = std::make_shared>(4, 4); ppAijIeJepEJpEJ = std::make_shared>(4, 4); } + +void MbD::DirectionCosineIeqcJeqc::initializeGlobally() +{ + DirectionCosineIeqcJec::initializeGlobally(); + ppAjOJepEJpEJ = std::static_pointer_cast(frmJ)->ppAjOepEpE(axisJ); +} + +void MbD::DirectionCosineIeqcJeqc::calcPostDynCorrectorIteration() +{ +} diff --git a/MbDCode/DirectionCosineIeqcJeqc.h b/MbDCode/DirectionCosineIeqcJeqc.h index 239a3fa..f3c6546 100644 --- a/MbDCode/DirectionCosineIeqcJeqc.h +++ b/MbDCode/DirectionCosineIeqcJeqc.h @@ -8,7 +8,10 @@ namespace MbD { //pAijIeJepEJ ppAijIeJepEIpEJ ppAijIeJepEJpEJ pAjOJepEJT ppAjOJepEJpEJ public: DirectionCosineIeqcJeqc(); + DirectionCosineIeqcJeqc(EndFrmcptr frmi, EndFrmcptr frmj, int axisi, int axisj); void initialize(); + void initializeGlobally(); + void calcPostDynCorrectorIteration() override; FRowDsptr pAijIeJepEJ; FMatDsptr ppAijIeJepEIpEJ; diff --git a/MbDCode/DirectionCosineIeqctJeqc.cpp b/MbDCode/DirectionCosineIeqctJeqc.cpp index de992ec..ae39837 100644 --- a/MbDCode/DirectionCosineIeqctJeqc.cpp +++ b/MbDCode/DirectionCosineIeqctJeqc.cpp @@ -1,14 +1,30 @@ #include "DirectionCosineIeqctJeqc.h" +#include "EndFrameqc.h" using namespace MbD; -MbD::DirectionCosineIeqctJeqc::DirectionCosineIeqctJeqc() +DirectionCosineIeqctJeqc::DirectionCosineIeqctJeqc() { - initialize(); + } -void MbD::DirectionCosineIeqctJeqc::initialize() +DirectionCosineIeqctJeqc::DirectionCosineIeqctJeqc(EndFrmcptr frmi, EndFrmcptr frmj, int axisi, int axisj) : + DirectionCosineIeqcJeqc(frmi, frmj, axisi, axisj) +{ + +} + +void DirectionCosineIeqctJeqc::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() +{ +} diff --git a/MbDCode/DirectionCosineIeqctJeqc.h b/MbDCode/DirectionCosineIeqctJeqc.h index c730035..5327c45 100644 --- a/MbDCode/DirectionCosineIeqctJeqc.h +++ b/MbDCode/DirectionCosineIeqctJeqc.h @@ -8,7 +8,10 @@ namespace MbD { //pAijIeJept ppAijIeJepEIpt ppAijIeJepEJpt ppAijIeJeptpt public: DirectionCosineIeqctJeqc(); + DirectionCosineIeqctJeqc(EndFrmcptr frmi, EndFrmcptr frmj, int axisi, int axisj); void initialize(); + void initializeGlobally(); + void calcPostDynCorrectorIteration() override; double pAijIeJept; FRowDsptr ppAijIeJepEIpt; diff --git a/MbDCode/DispCompIecJecKec.cpp b/MbDCode/DispCompIecJecKec.cpp new file mode 100644 index 0000000..8b94427 --- /dev/null +++ b/MbDCode/DispCompIecJecKec.cpp @@ -0,0 +1 @@ +#include "DispCompIecJecKec.h" diff --git a/MbDCode/DispCompIecJecKec.h b/MbDCode/DispCompIecJecKec.h new file mode 100644 index 0000000..3ac0318 --- /dev/null +++ b/MbDCode/DispCompIecJecKec.h @@ -0,0 +1,18 @@ +#pragma once + +#include "KinematicIeJe.h" + +namespace MbD { + class DispCompIecJecKec : public KinematicIeJe + { + //efrmK axisK riIeJeKe aAjOKe rIeJeO + public: + + EndFrmcptr efrmK; + int axisK; + double riIeJeKe; + FColDsptr aAjOKe; + FColDsptr rIeJeO; + }; +} + diff --git a/MbDCode/DispCompIecJecKeqc.cpp b/MbDCode/DispCompIecJecKeqc.cpp new file mode 100644 index 0000000..4b9eac9 --- /dev/null +++ b/MbDCode/DispCompIecJecKeqc.cpp @@ -0,0 +1 @@ +#include "DispCompIecJecKeqc.h" diff --git a/MbDCode/DispCompIecJecKeqc.h b/MbDCode/DispCompIecJecKeqc.h new file mode 100644 index 0000000..aea94a4 --- /dev/null +++ b/MbDCode/DispCompIecJecKeqc.h @@ -0,0 +1,17 @@ +#pragma once + +#include "DispCompIecJecKec.h" + +namespace MbD { + class DispCompIecJecKeqc : public DispCompIecJecKec + { + //priIeJeKepEK ppriIeJeKepEKpEK pAjOKepEKT ppAjOKepEKpEK + public: + + FRowDsptr priIeJeKepEK; + FMatDsptr ppriIeJeKepEKpEK; + FMatDsptr pAjOKepEKT; + FMatFColDsptr ppAjOKepEKpEK; + }; +} + diff --git a/MbDCode/DispCompIecJecO.cpp b/MbDCode/DispCompIecJecO.cpp new file mode 100644 index 0000000..1786e5c --- /dev/null +++ b/MbDCode/DispCompIecJecO.cpp @@ -0,0 +1 @@ +#include "DispCompIecJecO.h" diff --git a/MbDCode/DispCompIecJecO.h b/MbDCode/DispCompIecJecO.h new file mode 100644 index 0000000..f7aeda3 --- /dev/null +++ b/MbDCode/DispCompIecJecO.h @@ -0,0 +1,15 @@ +#pragma once + +#include "KinematicIeJe.h" + +namespace MbD { + class DispCompIecJecO : public KinematicIeJe + { + //axis riIeJeO + public: + + int axis; + double riIeJeO; + }; +} + diff --git a/MbDCode/DispCompIeqcJecKeqc.cpp b/MbDCode/DispCompIeqcJecKeqc.cpp new file mode 100644 index 0000000..1aa90b9 --- /dev/null +++ b/MbDCode/DispCompIeqcJecKeqc.cpp @@ -0,0 +1 @@ +#include "DispCompIeqcJecKeqc.h" diff --git a/MbDCode/DispCompIeqcJecKeqc.h b/MbDCode/DispCompIeqcJecKeqc.h new file mode 100644 index 0000000..740ea95 --- /dev/null +++ b/MbDCode/DispCompIeqcJecKeqc.h @@ -0,0 +1,18 @@ +#pragma once + +#include "DispCompIecJecKeqc.h" + +namespace MbD { + class DispCompIeqcJecKeqc : public DispCompIecJecKeqc + { + //priIeJeKepXI priIeJeKepEI ppriIeJeKepXIpEK ppriIeJeKepEIpEI ppriIeJeKepEIpEK + public: + + FRowDsptr priIeJeKepXI; + FRowDsptr priIeJeKepEI; + FMatDsptr ppriIeJeKepXIpEK; + FMatDsptr ppriIeJeKepEIpEI; + FMatDsptr ppriIeJeKepEIpEK; + }; +} + diff --git a/MbDCode/DispCompIeqcJecO.cpp b/MbDCode/DispCompIeqcJecO.cpp new file mode 100644 index 0000000..8eb7ab5 --- /dev/null +++ b/MbDCode/DispCompIeqcJecO.cpp @@ -0,0 +1 @@ +#include "DispCompIeqcJecO.h" diff --git a/MbDCode/DispCompIeqcJecO.h b/MbDCode/DispCompIeqcJecO.h new file mode 100644 index 0000000..78741fd --- /dev/null +++ b/MbDCode/DispCompIeqcJecO.h @@ -0,0 +1,16 @@ +#pragma once + +#include "DispCompIecJecO.h" + +namespace MbD { + class DispCompIeqcJecO : public DispCompIecJecO + { + //priIeJeOpXI priIeJeOpEI ppriIeJeOpEIpEI + public: + + FRowDsptr priIeJeOpXI; + FRowDsptr priIeJeOpEI; + FMatDsptr ppriIeJeOpEIpEI; + }; +} + diff --git a/MbDCode/DispCompIeqcJeqcKeqc.cpp b/MbDCode/DispCompIeqcJeqcKeqc.cpp new file mode 100644 index 0000000..2686a3c --- /dev/null +++ b/MbDCode/DispCompIeqcJeqcKeqc.cpp @@ -0,0 +1 @@ +#include "DispCompIeqcJeqcKeqc.h" diff --git a/MbDCode/DispCompIeqcJeqcKeqc.h b/MbDCode/DispCompIeqcJeqcKeqc.h new file mode 100644 index 0000000..34e26f9 --- /dev/null +++ b/MbDCode/DispCompIeqcJeqcKeqc.h @@ -0,0 +1,18 @@ +#pragma once + +#include "DispCompIeqcJecKeqc.h" + +namespace MbD { + class DispCompIeqcJeqcKeqc : public DispCompIeqcJecKeqc + { + //priIeJeKepXJ priIeJeKepEJ ppriIeJeKepXJpEK ppriIeJeKepEJpEJ ppriIeJeKepEJpEK + public: + + FRowDsptr priIeJeKepXJ; + FRowDsptr priIeJeKepEJ; + FMatDsptr ppriIeJeKepXJpEK; + FMatDsptr ppriIeJeKepEJpEJ; + FMatDsptr ppriIeJeKepEJpEK; + }; +} + diff --git a/MbDCode/DispCompIeqcJeqcKeqct.cpp b/MbDCode/DispCompIeqcJeqcKeqct.cpp new file mode 100644 index 0000000..aa1aa54 --- /dev/null +++ b/MbDCode/DispCompIeqcJeqcKeqct.cpp @@ -0,0 +1 @@ +#include "DispCompIeqcJeqcKeqct.h" diff --git a/MbDCode/DispCompIeqcJeqcKeqct.h b/MbDCode/DispCompIeqcJeqcKeqct.h new file mode 100644 index 0000000..4f1ced2 --- /dev/null +++ b/MbDCode/DispCompIeqcJeqcKeqct.h @@ -0,0 +1,20 @@ +#pragma once + +#include "DispCompIeqcJeqcKeqc.h" + +namespace MbD { + class DispCompIeqcJeqcKeqct : public DispCompIeqcJeqcKeqc + { + //priIeJeKept ppriIeJeKepXIpt ppriIeJeKepEIpt ppriIeJeKepXJpt ppriIeJeKepEJpt ppriIeJeKepEKpt ppriIeJeKeptpt + public: + + double priIeJeKept; + FRowDsptr ppriIeJeKepXIpt; + FRowDsptr ppriIeJeKepEIpt; + FRowDsptr ppriIeJeKepXJpt; + FRowDsptr ppriIeJeKepEJpt; + FRowDsptr ppriIeJeKepEKpt; + double ppriIeJeKeptpt; + }; +} + diff --git a/MbDCode/DispCompIeqcJeqcO.cpp b/MbDCode/DispCompIeqcJeqcO.cpp new file mode 100644 index 0000000..05ac82c --- /dev/null +++ b/MbDCode/DispCompIeqcJeqcO.cpp @@ -0,0 +1 @@ +#include "DispCompIeqcJeqcO.h" diff --git a/MbDCode/DispCompIeqcJeqcO.h b/MbDCode/DispCompIeqcJeqcO.h new file mode 100644 index 0000000..f272f14 --- /dev/null +++ b/MbDCode/DispCompIeqcJeqcO.h @@ -0,0 +1,16 @@ +#pragma once + +#include "DispCompIeqcJecO.h" + +namespace MbD { + class DispCompIeqcJeqcO : public DispCompIeqcJecO + { + //priIeJeOpXJ priIeJeOpEJ ppriIeJeOpEJpEJ + public: + + FRowDsptr priIeJeOpXJ; + FRowDsptr priIeJeOpEJ; + FMatDsptr ppriIeJeOpEJpEJ; + }; +} + diff --git a/MbDCode/DispCompIeqctJeqcKeqct.cpp b/MbDCode/DispCompIeqctJeqcKeqct.cpp new file mode 100644 index 0000000..689a1d1 --- /dev/null +++ b/MbDCode/DispCompIeqctJeqcKeqct.cpp @@ -0,0 +1 @@ +#include "DispCompIeqctJeqcKeqct.h" diff --git a/MbDCode/DispCompIeqctJeqcKeqct.h b/MbDCode/DispCompIeqctJeqcKeqct.h new file mode 100644 index 0000000..e2eea94 --- /dev/null +++ b/MbDCode/DispCompIeqctJeqcKeqct.h @@ -0,0 +1,13 @@ +#pragma once + +#include "DispCompIeqcJeqcKeqct.h" + +namespace MbD { + class DispCompIeqctJeqcKeqct : public DispCompIeqcJeqcKeqct + { + // + public: + + }; +} + diff --git a/MbDCode/DispCompIeqctJeqcO.cpp b/MbDCode/DispCompIeqctJeqcO.cpp new file mode 100644 index 0000000..3552ffb --- /dev/null +++ b/MbDCode/DispCompIeqctJeqcO.cpp @@ -0,0 +1 @@ +#include "DispCompIeqctJeqcO.h" diff --git a/MbDCode/DispCompIeqctJeqcO.h b/MbDCode/DispCompIeqctJeqcO.h new file mode 100644 index 0000000..e140ce8 --- /dev/null +++ b/MbDCode/DispCompIeqctJeqcO.h @@ -0,0 +1,16 @@ +#pragma once + +#include "DispCompIeqcJeqcO.h" + +namespace MbD { + class DispCompIeqctJeqcO : public DispCompIeqcJeqcO + { + //priIeJeOpt ppriIeJeOpEIpt ppriIeJeOptpt + public: + + double priIeJeOpt; + FRowDsptr ppriIeJeOpEIpt; + double ppriIeJeOptpt; + }; +} + diff --git a/MbDCode/EndFramec.cpp b/MbDCode/EndFramec.cpp index d583628..7d6d253 100644 --- a/MbDCode/EndFramec.cpp +++ b/MbDCode/EndFramec.cpp @@ -1,3 +1,4 @@ +#include #include #include "EndFramec.h" @@ -5,11 +6,9 @@ using namespace MbD; EndFramec::EndFramec() { - initialize(); } EndFramec::EndFramec(const char* str) : CartesianFrame(str) { - initialize(); } void EndFramec::initialize() @@ -34,6 +33,11 @@ void EndFramec::initializeGlobally() { } -void MbD::EndFramec::EndFrameqctFrom(std::shared_ptr& newFrmI) +void EndFramec::initEndFrameqct() +{ + assert(false); +} + +void MbD::EndFramec::calcPostDynCorrectorIteration() { } diff --git a/MbDCode/EndFramec.h b/MbDCode/EndFramec.h index dcbbdcf..6f9ddab 100644 --- a/MbDCode/EndFramec.h +++ b/MbDCode/EndFramec.h @@ -3,12 +3,15 @@ #include #include "CartesianFrame.h" -//#include "MarkerFrame.h" -#include "FullColumn.h" -#include "FullMatrix.h" +#include "FullColumn.h" //FColDsptr is defined +#include "FullMatrix.h" //FMatDsptr is defined namespace MbD { class MarkerFrame; + //template + //class FullColumn; + //template + //class FullMatrix; class EndFramec : public CartesianFrame { @@ -21,7 +24,8 @@ namespace MbD { MarkerFrame* getMarkerFrame(); void initializeLocally() override; void initializeGlobally() override; - virtual void EndFrameqctFrom(std::shared_ptr& frm); + virtual void initEndFrameqct(); + void calcPostDynCorrectorIteration() override; MarkerFrame* markerFrame; FColDsptr rOeO = std::make_shared>(3); diff --git a/MbDCode/EndFrameqc.cpp b/MbDCode/EndFrameqc.cpp index 1a82319..95d1c54 100644 --- a/MbDCode/EndFrameqc.cpp +++ b/MbDCode/EndFrameqc.cpp @@ -7,12 +7,17 @@ using namespace MbD; +std::shared_ptr MbD::EndFrameqc::Create(const char* name) +{ + auto item = std::make_shared(name); + item->initialize(); + return item; +} + EndFrameqc::EndFrameqc() { - initialize(); } EndFrameqc::EndFrameqc(const char* str) : EndFramec(str) { - initialize(); } void EndFrameqc::initialize() @@ -41,17 +46,35 @@ void EndFrameqc::initializeGlobally() } } -void MbD::EndFrameqc::EndFrameqctFrom(EndFrmcptr& frm) +void EndFrameqc::initEndFrameqct() { - endFrameqct = std::make_shared(); + endFrameqct = EndFrameqct::Create(this->getName().data()); } -void MbD::EndFrameqc::setrmemBlks(std::shared_ptr>> xyzBlks) +void EndFrameqc::setrmemBlks(std::shared_ptr>> xyzBlks) { std::static_pointer_cast(endFrameqct)->rmemBlks = xyzBlks; } -void MbD::EndFrameqc::setphiThePsiBlks(std::shared_ptr>> xyzRotBlks) +void EndFrameqc::setphiThePsiBlks(std::shared_ptr>> xyzRotBlks) { std::static_pointer_cast(endFrameqct)->phiThePsiBlks = xyzRotBlks; } + +FMatFColDsptr MbD::EndFrameqc::ppAjOepEpE(int jj) +{ + auto answer = std::make_shared>>>(4, 4); + for (int i = 0; i < 4; i++) { + auto answeri = answer->at(i); + auto ppAOepEipE = ppAOepEpE->at(i); + for (int j = i; j < 4; j++) { + answeri->at(j) = ppAOepEipE->at(j)->column(jj); + } + } + answer->symLowerWithUpper(); + return answer; +} + +void MbD::EndFrameqc::calcPostDynCorrectorIteration() +{ +} diff --git a/MbDCode/EndFrameqc.h b/MbDCode/EndFrameqc.h index f962584..748e813 100644 --- a/MbDCode/EndFrameqc.h +++ b/MbDCode/EndFrameqc.h @@ -9,14 +9,17 @@ namespace MbD { { //prOeOpE pprOeOpEpE pAOepE ppAOepEpE public: + static std::shared_ptr Create(const char* name); EndFrameqc(); EndFrameqc(const char* str); void initialize(); void initializeLocally() override; void initializeGlobally() override; - void EndFrameqctFrom(EndFrmcptr& frm) override; + void initEndFrameqct() override; void setrmemBlks(std::shared_ptr>> xyzBlks); void setphiThePsiBlks(std::shared_ptr>> xyzRotBlks); + FMatFColDsptr ppAjOepEpE(int axis); + void calcPostDynCorrectorIteration() override; FMatDsptr prOeOpE; std::shared_ptr>>> pprOeOpEpE; diff --git a/MbDCode/EndFrameqct.cpp b/MbDCode/EndFrameqct.cpp index 889a6d6..4ae861c 100644 --- a/MbDCode/EndFrameqct.cpp +++ b/MbDCode/EndFrameqct.cpp @@ -1,14 +1,23 @@ #include "EndFrameqct.h" #include "System.h" +#include "Symbolic.h" +#include "Time.h" using namespace MbD; +//class Symbolic; + +std::shared_ptr MbD::EndFrameqct::Create(const char* name) +{ + auto item = std::make_shared(name); + item->initialize(); + return item; +} + EndFrameqct::EndFrameqct() { - initialize(); } EndFrameqct::EndFrameqct(const char* str) : EndFrameqc(str) { - initialize(); } void EndFrameqct::initialize() @@ -41,19 +50,19 @@ void EndFrameqct::initializeLocally() void EndFrameqct::initializeGlobally() { - if (!rmemBlks) { + if (rmemBlks) { initprmemptBlks(); initpprmemptptBlks(); } - if (!phiThePsiBlks) { + if (phiThePsiBlks) { initpPhiThePsiptBlks(); initppPhiThePsiptptBlks(); } } -void MbD::EndFrameqct::initprmemptBlks() +void EndFrameqct::initprmemptBlks() { - auto time = System::getInstance().time; + time = System::getInstance().time; prmemptBlks = std::make_shared< FullColumn>>(3); for (int i = 0; i < 3; i++) { auto disp = rmemBlks->at(i); @@ -62,14 +71,22 @@ void MbD::EndFrameqct::initprmemptBlks() } } -void MbD::EndFrameqct::initpprmemptptBlks() +void EndFrameqct::initpprmemptptBlks() { } -void MbD::EndFrameqct::initpPhiThePsiptBlks() +void EndFrameqct::initpPhiThePsiptBlks() { } -void MbD::EndFrameqct::initppPhiThePsiptptBlks() +void EndFrameqct::initppPhiThePsiptptBlks() +{ +} + +void MbD::EndFrameqct::postInput() +{ +} + +void MbD::EndFrameqct::calcPostDynCorrectorIteration() { } diff --git a/MbDCode/EndFrameqct.h b/MbDCode/EndFrameqct.h index 1fd80a0..b4658a0 100644 --- a/MbDCode/EndFrameqct.h +++ b/MbDCode/EndFrameqct.h @@ -4,12 +4,14 @@ namespace MbD { class Symbolic; + class Time; class EndFrameqct : public EndFrameqc { //time rmemBlks prmemptBlks pprmemptptBlks phiThePsiBlks pPhiThePsiptBlks ppPhiThePsiptptBlks //rmem prmempt pprmemptpt aAme pAmept ppAmeptpt prOeOpt pprOeOpEpt pprOeOptpt pAOept ppAOepEpt ppAOeptpt public: + static std::shared_ptr Create(const char* name); EndFrameqct(); EndFrameqct(const char* str); void initialize(); @@ -19,8 +21,10 @@ namespace MbD { void initpprmemptptBlks(); void initpPhiThePsiptBlks(); void initppPhiThePsiptptBlks(); + void postInput() override; + void calcPostDynCorrectorIteration() override; - double time; + std::shared_ptr