#ifndef  __DRILL_DLL_H_INCLUDE__
#define  __DRILL_DLL_H_INCLUDE__
 

#include "cncobj.h"

#define CD_MAX_CP_CNT  1
//#define CLS_DRILL_ID    (RV_UC_CALI_CURVE + 1)

 
class CNCCLS_API CDrill : public CCncObj {
 
public:
	CDrill(void);
	virtual ~CDrill(void);
	
	//@1 像素坐标
	float  GetX();
	float  GetY();
	void SetX(float val , BOOL bUpdateMap=FALSE);
	void SetY(float val, BOOL bUpdateMap =FALSE);
    //virtual RvPoint GetCounterCamPos(int index);
	//1

	virtual double GetMacLength(){ return 1.; };
//	virtual RvPoint_f64 GetStartMacPos() ; 
//	virtual RvPoint_f64 GetEndMacPos();
	virtual RvPoint_f64 GetReferMacPos();

	virtual int GetMacPosCount();
	virtual RvPoint_f64 GetMacPosAt(int index) ;
	virtual RvPoint_f64* GetMacPosArray() ;
	virtual void SetMacPosAt(int index, RvPoint_f64 pos) ;

	virtual RvPoint_f  GetCamPosAt(int index) ;
	virtual void     SetCamPosAt(int index, RvPoint_f pos) ;

	virtual void UpdateCamPos() ;
	virtual void UpdateMacPos() ;
	 
public:
	virtual CUCObj* Clone( CUCObj* twin);
	
    virtual BOOL Serialize(HANDLE device, BOOL bIn );
	virtual void OnEndTrack(CDelegate* pDelegate,HGPD hCur,  GPoint point, int nHitTest);
	virtual void Show(CDelegate* pDelegate, int mode,BOOL bForce);
	 
	virtual void Scale(double scale);
    virtual void Scale(double scaleX, double scaleY);
    virtual void Rotate(double cx, double cy, double angle);


public:
	int m_nDuration; // 单位:毫秒
	int m_nMarkSize; // 十字显示长度
private:
	RV_HANDLE DrawCutter(CDelegate* pDelegate,  float radius, RV_HANDLE hStroke);
	void UpdateRect();

	//控制点，机械坐标
	RvPoint_f64 m_cp; //在CCncObj复制

};


#endif