#pragma once //states enum class MSTATE: int { IMMEDIATE, PLACE, DELETE, MOVE, DRAW, ERASE };//mouse state enum class SSTATE: int { RUN, STOP };//source state enum class GSTATE: int { RUN, FREEZE, EXIT };//game state //Message targets enum class MESSAGETARGET { BLOCKCHAIN, DRAWER, GUI, WAVE , PATTERN}; //Message types enum class BLOCKCHAINMESSAGE : int { CLEAR, PATTERN_SINGLESLIT, PATTERN_DOUBLESLIT, PATTERN_LATTICE, PATTERN_WAVEGUIDE, PATTERN_SSH, PATTERN_FRESNEL }; enum class PATTERNMESSAGE : int { PATTERN_SINGLESLIT, PATTERN_DOUBLESLIT, PATTERN_LATTICE, PATTERN_WAVEGUIDE, PATTERN_SSH, PATTERN_FRESNEL }; enum class DRAWERMESSAGE : int { CLEAR }; enum class GUIMESSAGE: int {}; enum class WAVEMESSAGE : int { RESET_WAVE, RESET_DAMPING, DIMENSION_2D, DIMENSION_3D, DEBUG_ON, DEBUG_OFF }; //Pevent types enum class PEVENTTYPE : int {DOWN, UP, MOVE, OTHER};