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

204 lines
3.8 KiB
C++

//-----------------------------------------------------------------------------+
// Copyright (C), 1998-2007, SH Software Co. Ltd.
// = FileName : AecDbGrip.cpp
// = Version : ver2.0
// = Author : zjq
// = CreateDate : 2002-09-09
// = Description: 夹点对象类的定义
// = Maintainers:
//
//-----------------------------------------------------------------------------+
#include "StdAfx.h"
#include "AecDbGrip.h"
#if ARX > 17
#include "AEntityBase.h"
AecDbGrip::AecDbGrip(AEntityBase *pEnt,const AcGePoint3d&pt,int type):
m_pGripEntity(pEnt),m_ptGrip(pt),m_bitFlags(0),m_iType(0)
{
}
AecDbGrip::~AecDbGrip()
{
}
int AecDbGrip::Index() const
{
return m_iId;
}
void AecDbGrip::SetIndex(long id)
{
m_iId = id;
}
const AcGePoint3d AecDbGrip::Position() const
{
return m_ptGrip;
}
AEntityBase* AecDbGrip::Owner() const
{
return m_pGripEntity;
}
AecDbGripDim* AecDbGrip::GetDim(long i) const
{
return m_allDims.GetAt(i);
}
int AecDbGrip::FindDim(AecDbGripDim* pDim) const
{
return m_allDims.Find(pDim);
}
int AecDbGrip::GetDimNum() const
{
return m_allDims.GetLength();
}
bool AecDbGrip::operator>(const AecDbGrip&) const
{
return false;
}
bool AecDbGrip::operator<(const AecDbGrip&) const
{
return false;
}
void AecDbGrip::AppendDim(AecDbGripDim*pDim)
{
pDim->SetGrip(this);
m_allDims.AddTail(pDim);
}
//更新关联动态标注
void AecDbGrip::UpdateDimEnt()
{
for (long i = 0; i < m_allDims.GetLength(); i++)
{
m_allDims[i]->UpdateDimEnt();
}
}
CString AecDbGrip::ToolTip() const
{
CString sTip;
m_pGripEntity->GetGripText(Index(),sTip);
return sTip;
}
void AecDbGrip::GetHotDimension(const AcDbObjectId & entId,
double dimScale,
AcDbDimDataPtrArray& dimData) const
{
if(entId.isNull() || !entId.isValid())
{
return;
}
AcDbEntity *pEnt = NULL;
acdbOpenObject(pEnt,entId,AcDb::kForRead);
if(pEnt == NULL)
{
return;
}
AEntityBase* pGripEntity = AEntityBase::Cast(pEnt);
if(pGripEntity == NULL)
{
pEnt->close();
return;
}
for(long i = 0; i < m_allDims.GetLength(); i++)
{
AecDbGripDim *pGripDim = m_allDims.GetAt(i);
dimData.append(pGripDim->CreateDimData(entId,dimScale));
}
pGripEntity->UpdateDim(Index());
pGripEntity->Close();
}
void AecDbGrip::GetHoverDimension(const AcDbObjectId& entId,
double dimScale,
AcDbDimDataPtrArray& dimData) const
{
if(entId.isNull() || !entId.isValid())
{
return;
}
AcDbEntity *pEnt = NULL;
acdbOpenObject(pEnt,entId,AcDb::kForRead);
if(pEnt == NULL)
{
return;
}
AEntityBase* pGripEntity = AEntityBase::Cast(pEnt);
if(pGripEntity == NULL)
{
pEnt->close();
return;
}
for(long i = 0; i < m_allDims.GetLength(); i++)
{
AecDbGripDim *pGripDim = m_allDims.GetAt(i);
if(pGripDim->IsHoverDim())
{
AcDbDimData*pDimData = pGripDim->CreateDimData(entId,dimScale);
pDimData->setDimHideIfValueIsZero(true);
dimData.append(pDimData);
}
else
{
pGripDim->ResetDimData();
}
}
pGripEntity->UpdateDim(Index());
pGripEntity->Close();
}
AcDbGripData* AecDbGrip::CreateGripData() const
{
AcDbGripData *pData = new AcDbGripData;
pData->setGripPoint(m_ptGrip);
pData->setAppData((void*)this);
pData->setBitFlags(m_bitFlags);
pData->setToolTipFunc(AEntityBase::GripToolTip);
pData->setHotGripDimensionFunc(AEntityBase::GripHotDimension);
pData->setHoverDimensionFunc(AEntityBase::GripHoverDimension);
if(m_iType > 0)
{
pData->setWorldDraw(AEntityBase::GripWorldDraw);
pData->setViewportDraw(AEntityBase::GripViewportDraw);
}
return pData;
}
bool AecDbGrip::WorldDraw(AcGiWorldDraw* pWd,
AcDbGripOperations::DrawType typ,
double dGripSize) const
{
return false;
}
void AecDbGrip::ViewportDraw(AcGiViewportDraw* pVd,
AcDbGripOperations::DrawType type,
int gripSize) const
{
}
#endif