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

179 lines
4.3 KiB
C++

#include "stdafx.h"
#include "AecDbConnectDoghouse.h"
Adesk::UInt32 AecDbConnectDoghouse::kCurrentVersionNumber = 1;
static const Adesk::UInt16 kColorByBlock = 0;
static const Adesk::UInt16 kRed = 1;
static const Adesk::UInt16 kYellow = 2;
static const Adesk::UInt16 kGreen = 3;
static const Adesk::UInt16 kCyan = 4;
static const Adesk::UInt16 kBlue = 5;
static const Adesk::UInt16 kMagenta = 6;
static const Adesk::UInt16 kWhite = 7;
static const Adesk::UInt16 kColorByLayer = 256;
ACRX_DXF_DEFINE_MEMBERS (AecDbConnectDoghouse, AecDbPortRoom,
AcDb::kDHL_CURRENT, AcDb::kMReleaseCurrent,
AcDbProxyEntity::kNoOperation | AcDbProxyEntity::kDisableProxyWarning,
AEC_CNTDOGHS,
"AecDbConnectDoghouse"
"|Product Desc: shanghua earthworm app obj"
"|Company: shanghua inc"
"|WEB Address: www.shanghuasoft.com")
AecDbConnectDoghouse::AecDbConnectDoghouse(void)
{
m_ptLast.set(0,0,0);
m_vtDirLast.set(0,0,0);
m_ptNext.set(0,0,0);
m_vtDirNext.set(0,0,0);
}
AecDbConnectDoghouse::~AecDbConnectDoghouse(void)
{
}
void AecDbConnectDoghouse::SetData(int nType,double dChamfL,LPCTSTR pszEWScript)
{
assertWriteEnabled();
m_fncNode.nFlag = nType;
m_fncNode.fNodeDef[0] = (float)dChamfL;
if (pszEWScript != NULL)
_tcscpy(m_fncNode.szNodeDefSpec,pszEWScript);
}
void AecDbConnectDoghouse::SetLastDir(const AcGePoint3d& ptEnd,const AcGeVector3d& vtDir)
{
assertWriteEnabled();
m_ptLast = ptEnd;
m_vtDirLast = vtDir;
}
void AecDbConnectDoghouse::SetNextDir(const AcGePoint3d& ptSta,const AcGeVector3d& vtDir)
{
assertWriteEnabled();
m_ptNext = ptSta;
m_vtDirNext = vtDir;
}
bool AecDbConnectDoghouse::GetLastDir(AcDbRay& vLast) const
{
assertReadEnabled();
if (!m_vtDirLast.isZeroLength())
{
vLast.setUnitDir(m_vtDirLast);
vLast.setBasePoint(m_ptLast);
return true;
}
return false;
}
bool AecDbConnectDoghouse::GetNextDir(AcDbRay& vNext) const
{
assertReadEnabled();
if (!m_vtDirNext.isZeroLength())
{
vNext.setBasePoint(m_ptNext);
vNext.setUnitDir(m_vtDirNext);
return true;
}
return false;
}
Adesk::Boolean AecDbConnectDoghouse::GetDraw2d(AcDbVoidPtrArray& arEntPtrs,int nSectionDrawStyle) const
{
return Adesk::kTrue;
}
Adesk::Boolean AecDbConnectDoghouse::GetDraw3d(AcDbVoidPtrArray& arEntPtrs,bool bWriteBimInfo) const
{
assertReadEnabled();
if (!m_vtDirLast.isZeroLength() && !m_vtDirNext.isZeroLength())
{
AcDbRay ray1,ray2;
GetLastDir(ray1);
GetNextDir(ray2);
}
return Adesk::kTrue;
}
Acad::ErrorStatus AecDbConnectDoghouse::Draw2d(AcGiDraw &dc) const
{
assertReadEnabled();
return Acad::eOk;
}
Acad::ErrorStatus AecDbConnectDoghouse::Draw3d(AcGiDraw &dc) const
{
assertReadEnabled();
return Acad::eOk;
}
Acad::ErrorStatus AecDbConnectDoghouse::dwgInFields (AcDbDwgFiler* pFiler)
{
assertWriteEnabled();
//----- Read parent class information first.
Acad::ErrorStatus es = AecDbPortRoom::dwgInFields (pFiler) ;
if ( es != Acad::eOk )
return (es) ;
//----- Object version number needs to be read first
Adesk::UInt32 version =0 ;
if ( (es =pFiler->readUInt32 (&version)) != Acad::eOk )
return (es) ;
if ( version > AecDbConnectDoghouse::kCurrentVersionNumber )
return (Acad::eMakeMeProxy) ;
pFiler->readPoint3d(&m_ptLast);
pFiler->readVector3d(&m_vtDirLast);
pFiler->readPoint3d(&m_ptNext);
pFiler->readVector3d(&m_vtDirNext);
UpdateDraw();
return (pFiler->filerStatus ()) ;
return Acad::eOk;
}
Acad::ErrorStatus AecDbConnectDoghouse::dwgOutFields(AcDbDwgFiler* pFiler) const
{
assertReadEnabled ();
//----- Save parent class information first.
Acad::ErrorStatus es = AecDbEntityBase::dwgOutFields (pFiler) ;
if ( es != Acad::eOk )
return (es) ;
//----- Object version number needs to be saved first
if ( (es =pFiler->writeUInt32 (AecDbPortRoom::kCurrentVersionNumber)) != Acad::eOk )
return (es) ;
pFiler->writePoint3d(m_ptLast);
pFiler->writeVector3d(m_vtDirLast);
pFiler->writePoint3d(m_ptNext);
pFiler->writeVector3d(m_vtDirNext);
return (pFiler->filerStatus ()) ;
}
Acad::ErrorStatus AecDbConnectDoghouse::dxfInFields (AcDbDxfFiler* pFiler)
{
assertWriteEnabled();
return Acad::eOk;
}
Acad::ErrorStatus AecDbConnectDoghouse::dxfOutFields(AcDbDxfFiler* pFiler) const
{
assertReadEnabled ();
return Acad::eOk;
}