#ifndef VST_WORK_MAIN_H
#define VST_WORK_MAIN_H

#include "vst_work_base.h"
class VST_Work_Main : public VST_Work_Base
{
public:
    VST_Work_Main(int iID,const QString& sName,VSM_Thread* pParent,
              VS_Thread* pPreState,VS_Thread* pNextState);
    void do_Msg(const V_Msg& msg);
    static int m_iCurSide;
    static int m_iCurLocateIndex;
    void Enter();
private:

    void AddCalcuPosSig(VST_Work_Main* pNextState,int iSideID,int iLineIndex,int iLayerIndex);
    void AddTargetSig(VST_Work_Main* pNextState,int iSideID,int iLineIndex,int iLayerIndex);
    void AddCutSig(VST_Work_Main* pNextState,int iSideID,int iLineIndex,int iLayerIndex,int iTimes);
    void AddKerfSig(VST_Work_Main* pNextState,int iSideID,int iLineIndex,int iLayerIndex);
	void AddHalfKerfSig(VST_Work_Main* pNextState,int iSideID,int iLineIndex,int iLayerIndex, bool bCheckNeed=true);
	void AddKerfLaserCutSig(VST_Work_Main* pNextState,int iSideID,int iLineIndex,int iLayerIndex);

    bool NeedTarget(int iSideID,int iLineIndex,int iLayerIndex);
    bool NeedKerf(int iSideID,int iLineIndex,int iLayerIndex);
};

#endif // VST_WORK_MAIN_H
