Files
envi-code/SourceCode/Code2026/tg_shs/shs_geLib/TDbGripDistDim.cpp
T
2026-09-28 15:28:50 +08:00

62 lines
1.4 KiB
C++

//-------------------------------------------------------------------------------------------------------+
// Copyright (C), 1998-2007, Beijing Tangent Software Co. Ltd.
// = FileName : TDbGripDistDim。cpp
// = Version : ver2.0
// = Author : xlc
// = CreateDate : 2002-09-09
// = Description: 夹点直线端标注类定义文件
// = Maintainers:
//
//-------------------------------------------------------------------------------------------------------+
#include "StdAfx.h"
#include "TDbGripDistDim.h"
#include "TGGeCurveSegment.h"
#if ADS > 15
TDbGripDistDim::TDbGripDistDim(int flag,bool bHover):
TDbGripDim(flag,bHover)
{
}
TDbGripDistDim::~TDbGripDistDim()
{
}
AcDbDimension* TDbGripDistDim::CreateDimEnt()const
{
return new AcDbAlignedDimension;
}
void TDbGripDistDim::SetData(AcGePoint3d ptStart,AcGePoint3d ptEnd,double dist)
{
m_ptStart = ptStart;
m_ptEnd = ptEnd;
AcGeVector3d vt = m_ptStart-m_ptEnd;
if (dist < 0)
{
dist = m_fDimScale * 0.5;
}
m_fDist = dist;
}
void TDbGripDistDim::UpdateDimEnt()
{
TDbGripDim::UpdateDimEnt();
AcDbAlignedDimension*pDim = AcDbAlignedDimension::cast(DimEnt());
if (pDim == NULL)
{
return;
}
pDim->setXLine1Point(m_ptStart);
pDim->setXLine2Point(m_ptEnd);
TGGeCurveSegment seg(m_ptStart,m_ptEnd,0);
TGGeCurveSegment seg1 = seg.Offset(fabs(m_fDist),m_fDist > 0 ? OFFSET_RIGHT : OFFSET_LEFT);
pDim->setDimLinePoint(seg1.MidPoint().AsAcGePoint3d());
}
#endif