/** * @file CardReader.h * @author sriram * * */ #ifndef CANADIANEXPERIENCE_MACHINELIB_CARDREADER_H #define CANADIANEXPERIENCE_MACHINELIB_CARDREADER_H #include "Shape.h" #include "Polygon.h" #include "AirSource.h" #include /** * card reader that reads card */ class CardReader: public Shape { private: ///front polygon cse335::Polygon mFront; ///back polygon cse335::Polygon mBack; ///roattion factor double mRotateFactor; ///card cse335::Polygon mCard; ///beats per minute int mBeatsPerMinute = 180; /// The air sources to drive things std::vector> mSources; ///time double mTime=-1.0; ///current column int mColumn=0; public: CardReader(std::wstring resourcesDir); /// Default constructor (disabled) CardReader() = delete; /// Copy constructor (disabled) CardReader(const CardReader &) = delete; /// Assignment operator void operator=(const CardReader &) = delete; void Draw(std::shared_ptr graphics,double x, double y) override; void SetTime(double time) override; void SetPosition(double x, double y) override; bool IsPunched(int column, int row); void SetCard(std::wstring imagePath); /** * Get an air source. * @param i Source index 0-9 * @return Pointer to AirSource object. */ std::shared_ptr GetSource(int i) { return mSources[i];} void SendPressure(double pressure); }; #endif //CANADIANEXPERIENCE_MACHINELIB_CARDREADER_H