62 lines
1.4 KiB
C++
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 |