/*************************************************************************** * Copyright (c) 2023 Ondsel, Inc. * * * * This file is part of OndselSolver. * * * * See LICENSE file for details about copyright. * ***************************************************************************/ #include #include "ASMTTime.h" #include "SymTime.h" #include "Constant.h" #include "Product.h" using namespace MbD; std::shared_ptr MbD::ASMTTime::With() { auto asmt = std::make_shared(); asmt->initialize(); return asmt; } MbD::ASMTTime::ASMTTime(Symsptr arg) : ExpressionX(arg) { } void MbD::ASMTTime::deleteMbD() { xx = nullptr; expression = nullptr; } void MbD::ASMTTime::createMbD(std::shared_ptr mbdSys, std::shared_ptr mbdUnits) { auto mbdTime = mbdSys->time; if (xx == mbdTime) return; auto timeScale = sptrConstant(mbdUnits->time); auto geoTime = std::make_shared(timeScale, mbdTime); this->xexpression(mbdTime, geoTime->simplified(geoTime)); } Symsptr MbD::ASMTTime::expandUntil(Symsptr sptr, std::shared_ptr>) { return sptr; } Symsptr MbD::ASMTTime::simplifyUntil(Symsptr sptr, std::shared_ptr>) { return sptr; } bool MbD::ASMTTime::isVariable() { return true; } void MbD::ASMTTime::setValue(double val) { xx->setValue(val); } Symsptr MbD::ASMTTime::copyWith(Symsptr arg) { return std::make_shared(arg); }