#pragma once #include "IMotionModelFactory.h" namespace DIOS::Dev::Detail::MachineryECOM { class MotionModelFactory : public IMotionModelFactory { public: MotionModelFactory(); ~MotionModelFactory(); public: static MotionModelFactory *Instance(); public: virtual IMotionModel *CreateModel(MOTION_MODEL_TYPE type) override; private: IMotionModel *CreateTomoMotionModel(); IMotionModel *CreateRADMotionModel(); IMotionModel *CreateResetMotionModel(); IMotionModel *CreateCalibrationMotionModel(); IMotionModel *CreateParkingMotionModel(); IMotionModel *CreateSelfTestMotionModel(); IMotionModel *CreateCBCTMotionModel(); IMotionModel *CreateCArmGeneralMotionModel(); IMotionModel *CreateCArmResetMotionModel(); private: static MotionModelFactory *m_instance; }; }