rafactor-pipe,fitting-speedup #86
No files matched your search
@@ -650,6 +650,59 @@ Acad::ErrorStatus AecDbEwFitting::dwgInFields(AcDbDwgFiler* pFiler)
|
||||
pFiler->readSoftPointerId((AcDbSoftPointerId*)&m_idDashLayer);
|
||||
pFiler->readSoftPointerId((AcDbSoftPointerId*)&m_idCenterLayer);
|
||||
}
|
||||
|
||||
|
||||
CString sSys;
|
||||
if (m_mapSpecXData.GetAt(PIPE_SYS, sSys))
|
||||
{
|
||||
|
||||
int clr;
|
||||
AcDbObjectId idLy, idLt;
|
||||
double dw;
|
||||
|
||||
int nvt;
|
||||
if (!m_mapSpecXData.HasKey(PIPE_COLOR, nvt))
|
||||
{
|
||||
clr = CoreTools::getColorByPipeSys(sSys, true);
|
||||
m_mapSpecXData.SetAt(PIPE_COLOR, clr);
|
||||
}
|
||||
if (!m_mapSpecXData.HasKey(PIPE_LINETYPE, nvt))
|
||||
{
|
||||
idLt = CoreTools::getLtByPipeSys(sSys, true);
|
||||
m_mapSpecXData.SetAt(PIPE_LINETYPE, idLt);
|
||||
}
|
||||
if (!m_mapSpecXData.HasKey(PIPE_LINELAYER, nvt))
|
||||
{
|
||||
idLy = CoreTools::getLyByPipeSys(sSys, true);
|
||||
m_mapSpecXData.SetAt(PIPE_LINELAYER, idLy);
|
||||
}
|
||||
if (!m_mapSpecXData.HasKey(PIPE_LINEWIDTH, nvt))
|
||||
{
|
||||
dw = CoreTools::getLwByPipeSys(sSys, true);
|
||||
m_mapSpecXData.SetAt(PIPE_LINEWIDTH, dw);
|
||||
}
|
||||
if (!m_mapSpecXData.HasKey(PIPE_COLOR_OUT, nvt))
|
||||
{
|
||||
clr = CoreTools::getColorByPipeSys(sSys, false);
|
||||
m_mapSpecXData.SetAt(PIPE_COLOR_OUT, clr);
|
||||
}
|
||||
if (!m_mapSpecXData.HasKey(PIPE_LINETYPE_OUT, nvt))
|
||||
{
|
||||
idLt = CoreTools::getLtByPipeSys(sSys, false);
|
||||
m_mapSpecXData.SetAt(PIPE_LINETYPE_OUT, idLt);
|
||||
}
|
||||
if (!m_mapSpecXData.HasKey(PIPE_LINELAYER_OUT, nvt))
|
||||
{
|
||||
idLy = CoreTools::getLyByPipeSys(sSys, false);
|
||||
m_mapSpecXData.SetAt(PIPE_LINELAYER_OUT, idLy);
|
||||
}
|
||||
if (!m_mapSpecXData.HasKey(PIPE_LINEWIDTH_OUT, nvt))
|
||||
{
|
||||
dw = CoreTools::getLwByPipeSys(sSys, true);
|
||||
m_mapSpecXData.SetAt(PIPE_LINEWIDTH_OUT, dw);
|
||||
}
|
||||
}
|
||||
|
||||
return (pFiler->filerStatus());
|
||||
}
|
||||
|
||||
|
||||
@@ -64,6 +64,30 @@ static void FreeBuffer(int n,AcDbVoidPtrArray& arEntPtrs)
|
||||
}
|
||||
}
|
||||
|
||||
void setPipeSysInfoToEnt( const bool &bCenter
|
||||
, AecDbObjXDataMap &xData
|
||||
, const int &clr
|
||||
, const double &dw
|
||||
, const AcDbObjectId &idLy
|
||||
, const AcDbObjectId &idLt)
|
||||
{
|
||||
BOOL bRel(FALSE);
|
||||
if (bCenter)
|
||||
{
|
||||
xData.SetAt(PIPE_COLOR, clr);
|
||||
xData.SetAt(PIPE_LINETYPE, idLt);
|
||||
xData.SetAt(PIPE_LINEWIDTH, dw);
|
||||
xData.SetAt(PIPE_LINELAYER, idLy);
|
||||
}
|
||||
else
|
||||
{
|
||||
xData.SetAt(PIPE_COLOR_OUT, clr);
|
||||
xData.SetAt(PIPE_LINETYPE_OUT, idLt);
|
||||
xData.SetAt(PIPE_LINEWIDTH_OUT, dw);
|
||||
xData.SetAt(PIPE_LINELAYER_OUT, idLy);
|
||||
}
|
||||
}
|
||||
|
||||
bool getPipeSysInfoByEnt(const bool &bCenter
|
||||
, const AecDbObjXDataMap &xData
|
||||
, int &clr
|
||||
@@ -987,23 +1011,73 @@ void AecDbEwPipe::SetLayerByXDataMap()
|
||||
m_mapSpecXData.SetAt(PIPE_COLOR, nColor);
|
||||
}
|
||||
|
||||
Acad::ErrorStatus AecDbEwPipe::dwgInFields(AcDbDwgFiler* pFiler)
|
||||
Acad::ErrorStatus AecDbEwPipe::dwgInFields(AcDbDwgFiler *pFiler)
|
||||
{
|
||||
assertWriteEnabled();
|
||||
|
||||
//----- Read parent class information first.
|
||||
Acad::ErrorStatus es = AecDbEwPipeBase::dwgInFields (pFiler) ;
|
||||
if ( es != Acad::eOk )
|
||||
return (es) ;
|
||||
Acad::ErrorStatus es = AecDbEwPipeBase::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) ;
|
||||
Adesk::UInt32 version = 0;
|
||||
if ((es = pFiler->readUInt32(&version)) != Acad::eOk)
|
||||
return (es);
|
||||
|
||||
if ( version > AecDbEwPipe::kCurrentVersionNumber )
|
||||
if (version > AecDbEwPipe::kCurrentVersionNumber)
|
||||
return (Acad::eMakeMeProxy);
|
||||
|
||||
CString sSys;
|
||||
if (m_mapSpecXData.GetAt(PIPE_SYS, sSys))
|
||||
{
|
||||
|
||||
int clr;
|
||||
AcDbObjectId idLy, idLt;
|
||||
double dw;
|
||||
|
||||
int nvt;
|
||||
if (!m_mapSpecXData.HasKey(PIPE_COLOR, nvt))
|
||||
{
|
||||
clr = CoreTools::getColorByPipeSys(sSys, true);
|
||||
m_mapSpecXData.SetAt(PIPE_COLOR, clr);
|
||||
}
|
||||
if (!m_mapSpecXData.HasKey(PIPE_LINETYPE, nvt))
|
||||
{
|
||||
idLt = CoreTools::getLtByPipeSys(sSys, true);
|
||||
m_mapSpecXData.SetAt(PIPE_LINETYPE, idLt);
|
||||
}
|
||||
if (!m_mapSpecXData.HasKey(PIPE_LINELAYER, nvt))
|
||||
{
|
||||
idLy = CoreTools::getLyByPipeSys(sSys, true);
|
||||
m_mapSpecXData.SetAt(PIPE_LINELAYER, idLy);
|
||||
}
|
||||
if (!m_mapSpecXData.HasKey(PIPE_LINEWIDTH, nvt))
|
||||
{
|
||||
dw = CoreTools::getLwByPipeSys(sSys, true);
|
||||
m_mapSpecXData.SetAt(PIPE_LINEWIDTH, dw);
|
||||
}
|
||||
if (!m_mapSpecXData.HasKey(PIPE_COLOR_OUT, nvt))
|
||||
{
|
||||
clr = CoreTools::getColorByPipeSys(sSys, false);
|
||||
m_mapSpecXData.SetAt(PIPE_COLOR_OUT, clr);
|
||||
}
|
||||
if (!m_mapSpecXData.HasKey(PIPE_LINETYPE_OUT, nvt))
|
||||
{
|
||||
idLt = CoreTools::getLtByPipeSys(sSys, false);
|
||||
m_mapSpecXData.SetAt(PIPE_LINETYPE_OUT, idLt);
|
||||
}
|
||||
if (!m_mapSpecXData.HasKey(PIPE_LINELAYER_OUT, nvt))
|
||||
{
|
||||
idLy = CoreTools::getLyByPipeSys(sSys, false);
|
||||
m_mapSpecXData.SetAt(PIPE_LINELAYER_OUT, idLy);
|
||||
}
|
||||
if (!m_mapSpecXData.HasKey(PIPE_LINEWIDTH_OUT, nvt))
|
||||
{
|
||||
dw = CoreTools::getLwByPipeSys(sSys, true);
|
||||
m_mapSpecXData.SetAt(PIPE_LINEWIDTH_OUT, dw);
|
||||
}
|
||||
}
|
||||
return pFiler->filerStatus();
|
||||
}
|
||||
|
||||
@@ -3625,7 +3699,7 @@ Acad::ErrorStatus AecDbEwPipe::Draw3d(AcGiDraw &dc) const
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
deleteArrayVoidPtrs<AcDbEntity>(ar);
|
||||
}
|
||||
|
||||
return Acad::eOk;
|
||||
|
||||
@@ -4101,7 +4101,12 @@ Acad::ErrorStatus AecDbEwPipeBase::Draw3d(AcGiDraw &dc) const
|
||||
{
|
||||
//虚函数
|
||||
AcDbObjectId idLy = CoreTools::getLyForPipe(sys);
|
||||
int clr = CoreTools::getColorByPipeSys(sys, !CoreTools::IsUsePipeOutClrFor3DRender());
|
||||
|
||||
int clr(256);
|
||||
GetAt(PIPE_COLOR, clr);
|
||||
//
|
||||
//clr = CoreTools::getColorByPipeSys(sys, !CoreTools::IsUsePipeOutClrFor3DRender());
|
||||
|
||||
dc.SetColor(clr);
|
||||
dc.SetLayer(idLy);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user