Files
envi-code/SourceCode/Code2026/AdsXRx/AecDbGripDistDim.cpp
T
2026-09-28 15:28:50 +08:00

63 lines
1.4 KiB
C++

//-------------------------------------------------------------------------------------------------------+
// Copyright (C), 1998-2007, SH Software Co. Ltd.
// = FileName : AecDbGripDistDim。cpp
// = Version : ver2.0
// = Author : zjq
// = CreateDate : 2002-09-09
// = Description: 夹点直线端标注类定义文件
// = Maintainers:
//
//-------------------------------------------------------------------------------------------------------+
#include "StdAfx.h"
#include "AecDbGripDistDim.h"
#include "XCurveSegment.h"
#if ARX > 17
AecDbGripDistDim::AecDbGripDistDim(int flag,bool bHover):
AecDbGripDim(flag,bHover)
{
}
AecDbGripDistDim::~AecDbGripDistDim()
{
}
AcDbDimension* AecDbGripDistDim::CreateDimEnt()const
{
return new AcDbAlignedDimension;
}
void AecDbGripDistDim::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 AecDbGripDistDim::UpdateDimEnt()
{
AecDbGripDim::UpdateDimEnt();
AcDbAlignedDimension*pDim = AcDbAlignedDimension::cast(DimEnt());
if (pDim == NULL)
{
return;
}
pDim->setXLine1Point(m_ptStart);
pDim->setXLine2Point(m_ptEnd);
XCurveSegment seg(m_ptStart,m_ptEnd,0);
XCurveSegment seg1 = seg.Offset(fabs(m_fDist),m_fDist > 0 ? OFFSET_RIGHT : OFFSET_LEFT);
pDim->setDimLinePoint(seg1.MidPoint().AsAcGePoint3d());
}
#endif