/*************************************************************************** * Copyright (c) 2023 Ondsel, Inc. * * * * This file is part of OndselSolver. * * * * See LICENSE file for details about copyright. * ***************************************************************************/ #pragma once #include "ASMTSpatialItem.h" //#include "ASMTRefPoint.h" //#include "ASMTRefCurve.h" //#include "ASMTRefSurface.h" #include "ASMTPrincipalMassMarker.h" //#include "Units.h" //#include "ASMTPart.h" //#include "ASMTJoint.h" //#include "ASMTMotion.h" namespace MbD { class ASMTRefPoint; class ASMTRefCurve; class ASMTRefSurface; class ASMTPrincipalMassMarker; class Units; class ASMTPart; class ASMTJoint; class ASMTMotion; class ASMTMarker; class EXPORT ASMTSpatialContainer : public ASMTSpatialItem { // public: ASMTSpatialContainer(); void initialize() override; void setPrincipalMassMarker(std::shared_ptr aJ); void readRefPoints(std::vector& lines); void readRefPoint(std::vector& lines); void readRefCurves(std::vector& lines); void readRefCurve(std::vector& lines); void readRefSurfaces(std::vector& lines); void readRefSurface(std::vector& lines); void readXs(std::vector& lines); void readYs(std::vector& lines); void readZs(std::vector& lines); void readBryantxs(std::vector& lines); void readBryantys(std::vector& lines); void readBryantzs(std::vector& lines); void readVXs(std::vector& lines); void readVYs(std::vector& lines); void readVZs(std::vector& lines); void readOmegaXs(std::vector& lines); void readOmegaYs(std::vector& lines); void readOmegaZs(std::vector& lines); void readAXs(std::vector& lines); void readAYs(std::vector& lines); void readAZs(std::vector& lines); void readAlphaXs(std::vector& lines); void readAlphaYs(std::vector& lines); void readAlphaZs(std::vector& lines); void createMbD(std::shared_ptr mbdSys, std::shared_ptr mbdUnits) override; FColDsptr rOcmO(); std::shared_ptr> qEp(); virtual FColDsptr vOcmO(); virtual FColDsptr omeOpO(); ASMTSpatialContainer* partOrAssembly() override; void updateFromMbD() override; void compareResults(AnalysisType type) override; void outputResults(AnalysisType type) override; void addRefPoint(std::shared_ptr refPoint); void addMarker(std::shared_ptr marker); std::string generateUniqueMarkerName(); std::shared_ptr>> markerList(); void setVelocity3D(FColDsptr velocity3D); void setOmega3D(FColDsptr omega3D); void readVelocity3D(std::vector& lines); void readOmega3D(std::vector& lines); void setVelocity3D(double a, double b, double c); void setOmega3D(double a, double b, double c); void storeOnLevel(std::ofstream& os, int level) override; void storeOnLevelVelocity(std::ofstream& os, int level); void storeOnLevelOmega(std::ofstream& os, int level); void storeOnLevelRefPoints(std::ofstream& os, int level); void storeOnLevelRefCurves(std::ofstream& os, int level); void storeOnLevelRefSurfaces(std::ofstream& os, int level); void storeOnTimeSeries(std::ofstream& os) override; FColDsptr velocity3D = std::make_shared>(3); FColDsptr omega3D = std::make_shared>(3); std::shared_ptr>> refPoints; std::shared_ptr>> refCurves; std::shared_ptr>> refSurfaces; FRowDsptr xs, ys, zs, bryxs, bryys, bryzs; FRowDsptr vxs, vys, vzs, omexs, omeys, omezs; FRowDsptr axs, ays, azs, alpxs, alpys, alpzs; FRowDsptr inxs, inys, inzs, inbryxs, inbryys, inbryzs; FRowDsptr invxs, invys, invzs, inomexs, inomeys, inomezs; FRowDsptr inaxs, inays, inazs, inalpxs, inalpys, inalpzs; std::shared_ptr principalMassMarker = std::make_shared(); }; }