121 lines
2.4 KiB
C++
121 lines
2.4 KiB
C++
#ifndef _AECSTATUSRECORD_H__
|
|
#define _AECSTATUSRECORD_H__
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif
|
|
|
|
#include <map>
|
|
|
|
#ifdef EARTHWORM_EXPORT
|
|
#define DLLIMPEXP __declspec(dllexport)
|
|
#else
|
|
#define DLLIMPEXP __declspec(dllimport)
|
|
#endif
|
|
|
|
|
|
|
|
class DLLIMPEXP AECStatusRecord
|
|
{
|
|
public:
|
|
AECStatusRecord();
|
|
AECStatusRecord(const AECStatusRecord& src);
|
|
~AECStatusRecord();
|
|
|
|
enum EAcquire
|
|
{
|
|
kString = 1,
|
|
kAngle = 2,
|
|
kDist = 3,
|
|
kPoint = 4,
|
|
kEntity = 5,
|
|
};
|
|
|
|
LPCTSTR Prompt();
|
|
void SetPrompt(LPCTSTR pszPrompt);
|
|
|
|
LPCTSTR KeywordList();
|
|
void SetKeywordList(LPCTSTR pszKeys);
|
|
|
|
void SetNextStatus(AECStatusRecord* pStatus,int nPos = 0);
|
|
AECStatusRecord* GetNextStatus(int nPos = 0);
|
|
|
|
void SetCommandStop(BOOL bStop);
|
|
BOOL IsCommand2Stop();
|
|
|
|
AECStatusRecord* GetLastStatus(int nPos = 0);
|
|
|
|
void SetPos(int nPos);
|
|
int GetPos();
|
|
|
|
void SetUndoGroupId(int nUndoGoupid);
|
|
int GetUndoGroupId();
|
|
|
|
//µ±next statusΪnullʱ£¬·µ»ØµÄroot״̬
|
|
void SetBackStatus(AECStatusRecord* pStatus);
|
|
AECStatusRecord* GetBackStatus();
|
|
|
|
void SetKeyStatus(LPCTSTR pszKey,AECStatusRecord* pStatuss);
|
|
AECStatusRecord* GetKeyStatus(LPCTSTR pszKey);
|
|
AECStatusRecord* GetParentStaRec();
|
|
|
|
void SetStatusType(EAcquire eType);
|
|
EAcquire GetStatusType();
|
|
|
|
void SetAcquireDouble(double dVl);
|
|
double GetAcquireDouble();
|
|
|
|
void SetAcquireString(LPCTSTR pszVal);
|
|
LPCTSTR GetAcquireString();
|
|
|
|
void SetAcquirePoint(const AcGePoint3d& ptGe);
|
|
AcGePoint3d GetAcquirePoint();
|
|
|
|
void SetAcquireEntity(const AcDbObjectId& id);
|
|
void GetAcquireEntity(AcDbObjectId& id);
|
|
|
|
void SetPlanPosition(int nPos);
|
|
int GetPlanPosition();
|
|
|
|
void SetSegStatusFinish(BOOL bFlag);
|
|
BOOL IsStatusFinish();
|
|
|
|
void SetRefDblValue(double dVal);
|
|
double GetRefDblValue();
|
|
|
|
BOOL IsValSeted();
|
|
|
|
AECStatusRecord& operator = (const AECStatusRecord& src);
|
|
void CopyFrom(const AECStatusRecord* pRec);
|
|
|
|
private:
|
|
|
|
TCHAR m_szPrompt[256];
|
|
TCHAR m_szKeywords[256];
|
|
|
|
std::map<int,AECStatusRecord*> m_mapPos2StatusNext;
|
|
std::map<int,AECStatusRecord*> m_mapPos2StatusLast;
|
|
|
|
AECStatusRecord* m_pParentStatus;
|
|
AECStatusRecord* m_pBackStatus;
|
|
|
|
union
|
|
{
|
|
double m_dVal[3];
|
|
TCHAR m_szVal[256];
|
|
ads_name m_adsEnt;
|
|
};
|
|
double m_dRefValue;
|
|
BOOL m_bValSeted;
|
|
BOOL m_bCmdStop;
|
|
int m_nPlanPos;
|
|
int m_nPos;
|
|
BOOL m_bSegStatFinish;
|
|
EAcquire m_eAcquire;
|
|
int m_nUndoGoupid;
|
|
|
|
std::map<CString,AECStatusRecord*> m_mapStatus;
|
|
};
|
|
|
|
#endif //_AECSTATUSRECORD_H__
|