/*************************************************************************** * Copyright (c) 2023 Ondsel, Inc. * * * * This file is part of OndselSolver. * * * * See LICENSE file for details about copyright. * ***************************************************************************/ #pragma once #include "CREATE.h" namespace MbD { class MBDynSystem; class MBDynVariable; class MBDynReference; class MBDynNode; class ASMTItem; class MBDynBody; class ASMTAssembly; class MBDynItem { // public: virtual MBDynSystem* root(); virtual void initialize(); void noop(); //void setName(std::string str); virtual void parseMBDyn(std::vector& lines); std::vector::iterator findLineWith(std::vector& lines, std::vector& tokens); bool lineHasTokens(const std::string& line, std::vector& tokens); virtual std::shared_ptr>> mbdynNodes(); virtual std::vector nodeNames(); virtual std::shared_ptr> mbdynVariables(); virtual std::shared_ptr>> mbdynReferences(); virtual void createASMT(); virtual std::shared_ptr nodeAt(std::string nodeName); virtual int nodeidAt(std::string nodeName); virtual std::shared_ptr bodyWithNode(std::string nodeName); virtual std::shared_ptr asmtAssembly(); FColDsptr readVector3(std::vector& args); FColDsptr readPosition(std::vector& args); FColDsptr readBasicPosition(std::vector& args); FMatDsptr readOrientation(std::vector& args); FMatDsptr readBasicOrientation(std::vector& args); std::string popOffTop(std::vector& args); std::string readStringOffTop(std::vector& args); std::string name; MBDynItem* owner; std::shared_ptr asmtItem; }; }