Files
envi-code/SourceCode/Code2026/ISODraft/AcISOCrdWatch.h
T
2026-09-28 15:28:50 +08:00

49 lines
1.3 KiB
C++

#ifndef _AECISOCRDWATCH_H__
#define _AECISOCRDWATCH_H__
#if _MSC_VER > 1000
#pragma once
#endif
#include "dbmain.h"
#include "AecDbCurveBase.h"
class AecISOCrdWatch : public AecDbCurveBase
{
public:
AecISOCrdWatch(BOOL bIsISO = FALSE);
virtual ~AecISOCrdWatch();
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);
void GetISOCrd(AcGeVector3d &vtX, AcGeVector3d &vtY, AcGeVector3d &vtZ) const;
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 //_AecISOCrdWatch_H__