SDC C-Project CF Review 프로그램
LYW
2021-08-17 67bcdefa0aae33fcf16333967744a9aafcaf9433
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
#pragma once
 
#include "CHPathScheduler/PathScheduler.h"
 
class AFX_EXT_CLASS CPathScheduler_Dual_Flying : public CPathScheduler
{
public:
    CPathScheduler_Dual_Flying(void);
    virtual ~CPathScheduler_Dual_Flying(void);
 
    // virtual func
    virtual int        GetSchedulerType() const    { return SchedulerType_Dual_Flying; }
    virtual int        PathScheduling(const VectorPathData& vecPathData, const VectorPathData& vecStartPath);
 
protected:
    int CalculateRangeRect(int nGantryCount, int nModuleCount, int nScanCount, int nGlassSizeX, int nGlassSizeY, int nScanMargin, int nOriginDir, int nBaseDir, VectorRangeData& vecRangeData);
 
    int CalculatePath(int nModuleIdx, int nScanIdx, const SPathData& startPath, const VectorPathData& vecTotalPathData, const SRangeData& rtRange, CPathSchedulerResult& scheduleResult);
 
    virtual int        CalculatePath(const SPathData& startPath, const VectorPathData& vecFirstPathData, const VectorPathData& vecSecondPathData, CPathSchedulerResult& scheduleResult)    { return 1; }
 
    SRangeData*            GetScanRangeData(int nModuleIdx, int nScanIdx);
    const SRangeData*    GetScanRangeData(int nModuleIdx, int nScanIdx) const;
 
    static int GetDirectionX(int nDir1, int nDir2);
    static int GetDirectionY(int nDir1, int nDir2);
    static int IsChangeModuleIndex(int nDir1, int nDir2);
    static int IsChangeScanIndex(int nDir1, int nDir2);
    static int IsChangeScanDir(int nDir1, int nDir2);
    static int GetChangeModuleIndex(int nModuleIndex, int nOriginDir, int nBaseDir, int nGantryModuleCount, int nTotalModuleCount);
    static int GetChangeScanIndex(int nScanIndex, int nTotalScanCount);
    static int GetChangeScanDir(int nScanDir);
 
protected:
     VectorRangeData    m_vecScanRangeData;
 
};