#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; }