SDC C-Project CF Review 프로그램
LYW
2021-07-08 9cbd9e554f9956b3b945b51602f1d4a3fa0353e1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#pragma once
 
#include <vector>
 
#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<SRangePoint>                    VectorRangePoint;
typedef std::vector<SRangePoint>::iterator            VectorRangePointIt;
typedef std::vector<SRangePoint>::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
};