#ifndef _AECANGLEWATCH_H__ #define _AECANGLEWATCH_H__ #if _MSC_VER > 1000 #pragma once #endif #include "dbmain.h" #include "AecDbCurveBase.h" #ifdef EARTHWORM_EXPORT #define DLLIMPEXP __declspec(dllexport) #else #define DLLIMPEXP __declspec(dllimport) #endif class DLLIMPEXP AecAngleWatch : public AecDbCurveBase { public: AecAngleWatch(BOOL bIsISO = FALSE); virtual ~AecAngleWatch(); void SetAngleWath(AcGePoint3d& ptCen,const AcGePoint3d& ptGeTo,const AcGeVector3d& vtDir = AcGeVector3d::kXAxis); void SwitchAutoSnapOrF8(); void SetISOMode(int nAngMode, int nAngle); virtual Acad::ErrorStatus Draw2d(AcGiDraw &mode) const; Acad::ErrorStatus DrawISOXYZ(AcGiDraw &mode) const; BOOL snapWatch(AcGePoint3d& ptCen,AcGePoint3d& ptGeTo,const AcGeVector3d& vtDir = AcGeVector3d::kXAxis); virtual const AecDbObjXDataMap* GetSpecialtyData() const { assertReadEnabled(); return NULL; } virtual AecDbObjXDataMap* GetSpecialtyData(AcDb::OpenMode bMode = AcDb::kForWrite) { assertWriteEnabled(); return NULL; } double GetAngWatchSp() const; void SetAngWatchSp(double nSp); public: int m_nAngMode, m_nAngle; AcGePoint3d m_ptGeCen; AcGePoint3d m_ptGeTo; AcGeVector3d m_vtDir; struct resbuf m_rbAutoSnap; public: BOOL m_bFallInSnap; //捕捉 double m_nWatchStep; //表针步长 BOOL m_bWatchPoint; //是否画表针 double m_dSnapAngle;//捕捉角度,默认10度 }; #endif //_AECANGLEWATCH_H__