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