#pragma once #include #define RANGE_RATE 0.56 enum RANGE_INDEX { Range_Left=0, Range_Middle, Range_Right, Range_Count }; struct SRangePoint { SRangePoint() { strName = _T(""); nPointCount = 0; nStartX = 0; nStartY = 0; nSizeX = 0; nRangeOrder = 0; } CString strName; int nPointCount; int nStartX; int nStartY; int nSizeX; int nSizeY; int nRangeOrder; }; typedef std::vector VectorRangePoint; typedef std::vector::iterator VectorRangePointIt; typedef std::vector::const_iterator constVectorRangePointIt; class AFX_EXT_CLASS CRcpSchedulingInfo { public: CRcpSchedulingInfo(void) { Reset(); } virtual ~CRcpSchedulingInfo(void) { Reset(); } void Reset() { m_bShortestPath = FALSE; m_bTactTimeFree = FALSE; m_nMaxPadPointCount = 0; m_nMaxPointCount = 0; m_nMaxWsiPointCount = 0; m_dTacTime = 0.0; m_nGantrySinglePathUse = 0; m_bUseRangeCntInfo = FALSE; m_vecRangePointInfo.clear(); m_vecRangePointInfo.resize(Range_Count); } // getter BOOL GetShortestPath() const { return m_bShortestPath; } BOOL GetTacTimeFree() const { return m_bTactTimeFree; } int GetMaxPadPointCount() const { return m_nMaxPadPointCount; } int GetMaxPointCount() const { return m_nMaxPointCount; } int GetMaxWsiPointCount() const { return m_nMaxWsiPointCount; } double GetTacTime() const { return m_dTacTime; } int GetSingleGantryPath()const {return m_nGantrySinglePathUse;} BOOL GetUseRangeCntInfo() const { return m_bUseRangeCntInfo; } SRangePoint* GetRangePointInfo(int nRangeIdx) { if (int(m_vecRangePointInfo.size()) < Range_Count) return 0; return &m_vecRangePointInfo[nRangeIdx]; } const SRangePoint* GetRangePointInfo(int nRangeIdx) const { if (int(m_vecRangePointInfo.size()) < Range_Count) return 0; return &m_vecRangePointInfo[nRangeIdx]; } int GetRangePointCount(int nRangeIdx) const { if (int(m_vecRangePointInfo.size()) < Range_Count) return 0; return m_vecRangePointInfo[nRangeIdx].nPointCount; } int GetRangeStartX(int nRangeIdx) const { if (int(m_vecRangePointInfo.size()) < Range_Count) return 0; return m_vecRangePointInfo[nRangeIdx].nStartX; } int GetRangeEndX(int nRangeIdx) const { if (int(m_vecRangePointInfo.size()) < Range_Count) return 0; return (m_vecRangePointInfo[nRangeIdx].nStartX + m_vecRangePointInfo[nRangeIdx].nSizeX); } // setter void SetShortestPath(BOOL bUse) { m_bShortestPath = bUse; } void SetTacTimeFree(BOOL bUse) { m_bTactTimeFree = bUse; } void SetMaxPadPointCount(int nCount) { m_nMaxPadPointCount=nCount; } void SetMaxPointCount(int nCount) { m_nMaxPointCount = nCount; } void SetMaxWsiPointCount(int nCount) { m_nMaxWsiPointCount = nCount; } void SetTacTime(double dTime) { m_dTacTime = dTime; } void SetUseRangeCntInfo(BOOL bUse) { m_bUseRangeCntInfo = bUse; } void SetRangePointCount(int nRangeIdx, int nCount) { if (int(m_vecRangePointInfo.size()) < Range_Count) return; m_vecRangePointInfo[nRangeIdx].nPointCount = nCount; } void SetRangeName(int nRangeIdx, CString strName) { if (int(m_vecRangePointInfo.size()) < Range_Count) return; m_vecRangePointInfo[nRangeIdx].strName.Format(_T("%s"), strName); } void SetRangeStartX(int nRangeIdx, int nStartX) { if (int(m_vecRangePointInfo.size()) < Range_Count) return; m_vecRangePointInfo[nRangeIdx].nStartX = nStartX; } void SetRangeStartY(int nRangeIdx, int nStartY) { if (int(m_vecRangePointInfo.size()) < Range_Count) return; m_vecRangePointInfo[nRangeIdx].nStartY = nStartY; } void SetRangeSizeX(int nRangeIdx, int nSizeX) { if (int(m_vecRangePointInfo.size()) < Range_Count) return; m_vecRangePointInfo[nRangeIdx].nSizeX = nSizeX; } void SetRangeSizeY(int nRangeIdx, int nSizeY) { if (int(m_vecRangePointInfo.size()) < Range_Count) return; m_vecRangePointInfo[nRangeIdx].nSizeY = nSizeY; } void SetSingleGantryPath(int nType) { m_nGantrySinglePathUse = nType; } protected: // schedule info BOOL m_bShortestPath; // ÃִܰŸ® À¯¹« int m_nMaxPadPointCount; //Pad Review ÃÊ´ë Æ÷ÀÎÆ® ¼ö int m_nMaxPointCount; // ÃÖ´ë Æ÷ÀÎÆ® ¼ö int m_nMaxWsiPointCount; // WSI ÃÖ´ë Æ÷ÀÎÆ® ¼ö BOOL m_bTactTimeFree; // ÅØ ÇÁ¸® À¯¹« double m_dTacTime; // ÃÑ ½Ã°£ int m_nGantrySinglePathUse; // °ÕÆ®¸® Çϳª¸¸ »ç¿ëÇÒ¶§ 0= no 1= Left 2= Right // schedule range info BOOL m_bUseRangeCntInfo; // ¿µ¿ªº° °³¼ö »ç¿ë VectorRangePoint m_vecRangePointInfo; // range point vector };