#include "stdafx.h" #include "AECStatusRecord.h" #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif AECStatusRecord::AECStatusRecord() { m_eAcquire = AECStatusRecord::kDist; m_nPlanPos = -1; m_szPrompt[0] = _T('\0'); m_szKeywords[0] = _T('\0'); m_dVal[0] = m_dVal[1] = m_dVal[2] = 0; m_bValSeted = FALSE; m_bSegStatFinish = FALSE; m_pParentStatus = NULL; m_pBackStatus = NULL; m_nPos = 0; m_bCmdStop = FALSE; m_nUndoGoupid = -1; m_dRefValue = 0; } AECStatusRecord::AECStatusRecord(const AECStatusRecord& src) { _tcscpy(m_szPrompt,src.m_szPrompt); _tcscpy(m_szKeywords,src.m_szKeywords); memcpy(m_dVal,src.m_dVal,sizeof(m_dVal)); _tcscpy(m_szVal,src.m_szVal); memcpy(m_adsEnt,src.m_adsEnt,sizeof(m_adsEnt)); m_mapPos2StatusNext = src.m_mapPos2StatusNext; m_mapPos2StatusLast = src.m_mapPos2StatusLast; m_mapStatus = src.m_mapStatus; m_nPos = src.m_nPos; m_eAcquire = src.m_eAcquire; m_nPlanPos = src.m_nPlanPos; m_bValSeted = src.m_bValSeted; m_bCmdStop = src.m_bCmdStop; m_eAcquire = src.m_eAcquire; m_pParentStatus = src.m_pParentStatus; m_pBackStatus = src.m_pBackStatus; m_dRefValue = src.m_dRefValue; } AECStatusRecord::~AECStatusRecord() { } LPCTSTR AECStatusRecord::Prompt() { return m_szPrompt; } void AECStatusRecord::SetPrompt(LPCTSTR pszPrompt) { if (pszPrompt != NULL) { _tcscpy(m_szPrompt,pszPrompt); } } LPCTSTR AECStatusRecord::KeywordList() { return m_szKeywords; } void AECStatusRecord::SetKeywordList(LPCTSTR pszKeys) { if (pszKeys != NULL) { _tcscpy(m_szKeywords,pszKeys); } } void AECStatusRecord::SetNextStatus(AECStatusRecord* pStatus,int nPos) { m_mapPos2StatusNext[nPos] = pStatus; if (pStatus != NULL) { pStatus->m_mapPos2StatusLast[nPos] = this; } } AECStatusRecord* AECStatusRecord::GetNextStatus(int nPos) { if (m_mapPos2StatusNext.find(nPos) != m_mapPos2StatusNext.end()) return m_mapPos2StatusNext[nPos]; return NULL; } void AECStatusRecord::SetCommandStop(BOOL bStop) { m_bCmdStop = bStop; } BOOL AECStatusRecord::IsCommand2Stop() { return m_bCmdStop; } void AECStatusRecord::SetPos(int nPos) { m_nPos = nPos; } int AECStatusRecord::GetPos() { return m_nPos; } void AECStatusRecord::SetUndoGroupId(int nUndoGoupid) { m_nUndoGoupid = nUndoGoupid; } int AECStatusRecord::GetUndoGroupId() { return m_nUndoGoupid; } AECStatusRecord* AECStatusRecord::GetLastStatus(int nPos) { if (m_mapPos2StatusLast.find(nPos) != m_mapPos2StatusLast.end()) return m_mapPos2StatusLast[nPos]; return NULL; } void AECStatusRecord::SetBackStatus(AECStatusRecord* pStatus) { m_pBackStatus = pStatus; } AECStatusRecord* AECStatusRecord::GetBackStatus() { return m_pBackStatus; } void AECStatusRecord::SetKeyStatus(LPCTSTR pszKey,AECStatusRecord* pStatuss) { if (pszKey != NULL) { std::pair value(pszKey,pStatuss); m_mapStatus.insert(value); pStatuss->m_pParentStatus = this; } } AECStatusRecord* AECStatusRecord::GetKeyStatus(LPCTSTR pszKey) { if (pszKey != NULL) { if (m_mapStatus.find(pszKey) != m_mapStatus.end()) { return m_mapStatus[pszKey]; } } return NULL; } AECStatusRecord * AECStatusRecord::GetParentStaRec() { return m_pParentStatus; } void AECStatusRecord::SetAcquireDouble(double dVl) { m_dVal[0] = dVl; m_bValSeted = TRUE; } double AECStatusRecord::GetAcquireDouble() { return m_dVal[0]; } void AECStatusRecord::SetAcquireString(LPCTSTR pszVal) { if (pszVal != NULL) { _tcscpy(m_szVal,pszVal); m_bValSeted = TRUE; } } void AECStatusRecord::SetAcquirePoint(const AcGePoint3d& ptGe) { m_dVal[0] = ptGe.x; m_dVal[1] = ptGe.y; m_dVal[2] = ptGe.z; m_bValSeted = TRUE; } AcGePoint3d AECStatusRecord::GetAcquirePoint() { return AcGePoint3d(m_dVal[0],m_dVal[1],m_dVal[2]); } void AECStatusRecord::SetStatusType(EAcquire eType) { m_eAcquire = eType; m_bValSeted = TRUE; } AECStatusRecord::EAcquire AECStatusRecord::GetStatusType() { return m_eAcquire; } void AECStatusRecord::SetPlanPosition(int nPos) { m_nPlanPos = nPos; } int AECStatusRecord::GetPlanPosition() { return m_nPlanPos; } LPCTSTR AECStatusRecord::GetAcquireString() { return m_szVal; } void AECStatusRecord::SetAcquireEntity(const AcDbObjectId& id) { } void AECStatusRecord::GetAcquireEntity(AcDbObjectId& id) { } void AECStatusRecord::SetSegStatusFinish(BOOL bFlag) { m_bSegStatFinish = bFlag; } BOOL AECStatusRecord::IsStatusFinish() { return m_bSegStatFinish; } BOOL AECStatusRecord::IsValSeted() { return m_bValSeted; } void AECStatusRecord::SetRefDblValue(double dVal) { m_dRefValue = dVal; } double AECStatusRecord::GetRefDblValue() { return m_dRefValue; } AECStatusRecord& AECStatusRecord::operator = (const AECStatusRecord& src) { if (this != &src) { _tcscpy(m_szPrompt,src.m_szPrompt); _tcscpy(m_szKeywords,src.m_szKeywords); memcpy(m_dVal,src.m_dVal,sizeof(m_dVal)); _tcscpy(m_szVal,src.m_szVal); memcpy(m_adsEnt,src.m_adsEnt,sizeof(m_adsEnt)); m_mapStatus = src.m_mapStatus; //copy next status; m_mapPos2StatusNext = src.m_mapPos2StatusNext; m_mapPos2StatusLast = src.m_mapPos2StatusLast; m_bSegStatFinish = src.m_bSegStatFinish; m_pBackStatus = src.m_pBackStatus; m_eAcquire = src.m_eAcquire; m_nPlanPos = src.m_nPlanPos; m_bValSeted = src.m_bValSeted; m_bCmdStop = src.m_bCmdStop; m_dRefValue = src.m_dRefValue; } return *this; } void AECStatusRecord::CopyFrom(const AECStatusRecord* pRec) { if (pRec != NULL) { _tcscpy(m_szPrompt,pRec->m_szPrompt); _tcscpy(m_szKeywords,pRec->m_szKeywords); memcpy(m_dVal,pRec->m_dVal,sizeof(m_dVal)); _tcscpy(m_szVal,pRec->m_szVal); memcpy(m_adsEnt,pRec->m_adsEnt,sizeof(m_adsEnt)); m_mapStatus = pRec->m_mapStatus; //copy next status; m_mapPos2StatusNext = pRec->m_mapPos2StatusNext; m_mapPos2StatusLast = pRec->m_mapPos2StatusLast; m_bSegStatFinish = pRec->m_bSegStatFinish; m_nPos = pRec->m_nPos; m_eAcquire = pRec->m_eAcquire; m_nPlanPos = pRec->m_nPlanPos; m_bValSeted = pRec->m_bValSeted; } }