#pragma once
|
#include "CHPathScheduler/PathScheduler.h"
|
|
class AFX_EXT_CLASS CPathScheduler_Quad_Active_Sorting : public CPathScheduler
|
{
|
public:
|
CPathScheduler_Quad_Active_Sorting(void);
|
virtual ~CPathScheduler_Quad_Active_Sorting(void);
|
|
virtual int GetSchedulerType() const { return SchedulerType_Qual_Active_Sorting; }
|
virtual int PathScheduling(const VectorPathData& vecPathData, const VectorPathData& vecStartPath);
|
|
protected:
|
int CalculateRangeRect(int nGantryCount, int nModuleCount, int nGlassSizeX, int nGlassSizeY, int nDistX, int nDistY, int nOriginDir, int nBaseDir, const VectorPathData& vecPathData, 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;
|
|
int GetGantryIndex(int nModuleIdx);
|
|
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;
|
};
|