//-------------------------------------------------------------------------------------------------------+ // 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