/** * @file Tubing.h * @author sriram * * */ #ifndef CANADIANEXPERIENCE_MACHINELIB_TUBING_H #define CANADIANEXPERIENCE_MACHINELIB_TUBING_H #include "Component.h" #include "AirSource.h" #include "AirSink.h" class Clamp; /** * class that defines the tubing */ class Tubing: public Component { private: ///list of all the clamps std::vector> mClamps; ///source of air AirSource mSource; ///sink for air AirSink mSink; ///pressure double mPressure=1; public: /// Default constructor Tubing(); /// Copy constructor (disabled) Tubing(const Tubing &) = delete; /// Assignment operator void operator=(const Tubing &) = delete; void Draw(std::shared_ptr graphics,double x, double y) override; /** * add a clamp to the list * @param x * @param y * @param rotation * @param speed */ void AddClamp(double x, double y, double rotation, double speed); /** * getter for source * @return */ AirSource* GetSource(){return &mSource;} /** * getter for sink * @return */ AirSink *GetSink(){return &mSink;} void SendPressure(double pressure) override; }; #endif //CANADIANEXPERIENCE_MACHINELIB_TUBING_H