/** * @file Machine.h * @author sriram * * */ #ifndef CANADIANEXPERIENCE_MACHINELIB_MACHINE_H #define CANADIANEXPERIENCE_MACHINELIB_MACHINE_H class Drawable; class Component; /** * machine */ class Machine { private: ///time double mTime; /// The machine number int mNumber; /// The root drawable std::shared_ptr mRoot; /// The components of the machine std::vector> mComponents; public: ///destructor virtual ~Machine() {} /// Constructor Machine(const int num); /** Default constructor disabled */ Machine() = delete; /// Copy constructor/disabled Machine(const Machine&) = delete; /// Assignment operator/disabled void operator=(const Machine&) = delete; /** * Draw the machine at the currently specified location * @param graphics Graphics object to render to * @param x * @param y */ void Draw(std::shared_ptr graphics, double x, double y); /** * add component to component list * @param component */ void AddComponent(std::shared_ptr component); /** * updates the components */ void Update(); /** * setter for time * @param time */ void SetTime(double time); /** * clears list of components */ void ClearMachine(); }; #endif //CANADIANEXPERIENCE_MACHINELIB_MACHINE_H