#pragma once #include #include #include #include "Item.h" #include "EndFramec.h" namespace MbD { class Constraint; class Joint : public Item { //frmI frmJ constraints friction public: Joint(); Joint(const char* str); void initialize(); virtual void connectsItoJ(EndFrmcptr frmI, EndFrmcptr frmJ); void initializeLocally() override; void initializeGlobally() override; void constraintsDo(const std::function )>& f); void postInput() override; void addConstraint(std::shared_ptr con); void prePosIC() override; void fillEssenConstraints(std::shared_ptr>> essenConstraints) override; virtual void fillDispConstraints(std::shared_ptr>> dispConstraints); virtual void fillPerpenConstraints(std::shared_ptr>> perpenConstraints); void fillRedundantConstraints(std::shared_ptr>> redunConstraints) override; void fillqsulam(FColDsptr col) override; void useEquationNumbers() override; void setqsulam(FColDsptr col) override; void postPosICIteration() override; void fillPosICError(FColDsptr col) override; void fillPosICJacob(SpMatDsptr mat) override; void removeRedundantConstraints(std::shared_ptr> redundantEqnNos) override; void reactivateRedundantConstraints() override; void constraintsReport() override; void postPosIC() override; void outputStates() override; void preDyn() override; EndFrmcptr frmI; EndFrmcptr frmJ; std::shared_ptr>> constraints; }; }