Files
envi-code/SourceCode/Code2026/tg_shs/shs_geLib/TEdJig.cpp
T
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

155 lines
2.8 KiB
C++

//-----------------------------------------------------------------------------+
// Copyright (C), 1998-2007, Beijing Tangent Software Co. Ltd.
// = FileName : TEdJig.cpp
// = Version : ver2.0
// = Author : xlc
// = CreateDate : 2002-09-09
// = Description: 夹点标注动态显示类的定义
// = Maintainers:
//
//-----------------------------------------------------------------------------+
#include "StdAfx.h"
#include "TEdJig.h"
#if ADS > 15
#include "TDbGrip.h"
TEdJig::TEdJig()
: m_iCurGrip(0)
{
}
TEdJig::~TEdJig()
{
ReleaseDimData();
}
void TEdJig::SetCurGrip(long i)
{
m_iCurGrip = i;
}
TDbGrip* TEdJig::GetCurGrip()
{
return m_allGrip.IsValidIndex(m_iCurGrip) ? m_allGrip[m_iCurGrip] : NULL;
}
TDbGrip* TEdJig::GetGrip(long iGrip)
{
return m_allGrip[iGrip];
}
TDbGripDim * TEdJig::GetGripDim(long iGrip,long iDim)
{
return GetGrip(iGrip)->GetDim(iDim);
}
Acad::ErrorStatus TEdJig::EntityToDim(long iGrip,long iDim)
{
return Acad::eNotImplementedYet;
}
Acad::ErrorStatus TEdJig::DimToEntity(long iGrip,long iDim,double newValue)
{
return Acad::eNotImplementedYet;
}
void TEdJig::SetGripNum(long num)
{
m_allGrip.SetLength(num);
for (long i = 0; i < m_allGrip.GetLength(); i++)
{
m_allGrip[i] = new TDbGrip(NULL,AcGePoint3d(),-1);
}
}
void TEdJig::ReleaseDimData()
{
for (long i = 0; i < m_dimDataArray.length(); i++)
{
if (m_dimDataArray[i] != NULL)
{
delete m_dimDataArray[i];
}
}
}
AcDbDimDataPtrArray* TEdJig::dimData(const double dimScale)
{
TDbGrip *pGrip = GetCurGrip();
if (pGrip != NULL)
{
ReleaseDimData();
m_dimDataArray.setLogicalLength(pGrip->GetDimNum());
for (long iDim = 0; iDim < pGrip->GetDimNum(); iDim++)
{
TDbGripDim *pDim = pGrip->GetDim(iDim);
m_dimDataArray.setAt(iDim,pDim->CreateDimData(AcDbObjectId::kNull,dimScale));
}
return &m_dimDataArray;
}
return NULL;
}
Acad::ErrorStatus TEdJig::setDimValue(const AcDbDimData *pdimData,const double newValue)
{
int iDim;
if (m_dimDataArray.find((AcDbDimData*)pdimData,iDim))
{
Acad::ErrorStatus es = DimToEntity(m_iCurGrip,iDim,newValue);
if (es == Acad::eOk)
{
TDbGripDim *pGripDim = this->GetGripDim(m_iCurGrip,iDim);
if (pGripDim != NULL && pGripDim->CanLock())
{
pGripDim->Lock(newValue);
}
}
return es;
}
return Acad::eInvalidInput;
}
#endif
Adesk::Boolean TEdJig::Update()
{
return Adesk::kTrue;
}
Adesk::Boolean TEdJig::update()
{
Adesk::Boolean bRet = Update();
#if ADS>15
if (bRet)
{
TDbGrip *pCurGrip = GetCurGrip();
if (pCurGrip != NULL)
{
for (long iDim = 0; iDim < pCurGrip->GetDimNum(); iDim++)
{
TDbGripDim* pDim = pCurGrip->GetDim(iDim);
if (pDim->IsLocked())
{
DimToEntity(pCurGrip->Index(),iDim,pDim->GetLockValue());
}
else
{
EntityToDim(m_iCurGrip,iDim);
}
}
pCurGrip->UpdateDimEnt();
}
}
#endif
return bRet;
}