215 lines
5.0 KiB
C++
215 lines
5.0 KiB
C++
#include "stdafx.h"
|
|
#include "AecDbBalcony.h"
|
|
#include "AecDbXDrawPointer.h"
|
|
|
|
Adesk::UInt32 AecDbBalcony::kCurrentVersionNumber = 1;
|
|
|
|
ACRX_DXF_DEFINE_MEMBERS (AecDbBalcony, AecDbEwPipeBase,
|
|
AcDb::kDHL_CURRENT, AcDb::kMReleaseCurrent,
|
|
AcDbProxyEntity::kNoOperation | AcDbProxyEntity::kDisableProxyWarning,
|
|
AEC_DBBALCONY,
|
|
"AecDbBalcony"
|
|
"|Product Desc: shanghua earthworm app obj"
|
|
"|Company: shanghua inc"
|
|
"|WEB Address: www.shanghuasoft.com")
|
|
|
|
|
|
AecDbBalcony::AecDbBalcony(void)
|
|
{
|
|
m_mapSpecXData.SetAt(KEY_NAME, _T("Ñǫ̂"));
|
|
}
|
|
|
|
AecDbBalcony::~AecDbBalcony(void)
|
|
{
|
|
}
|
|
|
|
void AecDbBalcony::SetBalconyData(const BalconyData& data)
|
|
{
|
|
AssertWriteEnabled();
|
|
|
|
m_mapSpecXData.SetAt(KEY_REDGE,data.nRailEdge);
|
|
m_mapSpecXData.SetAt(KEY_HEIGHT,data.dRailHeight);
|
|
m_mapSpecXData.SetAt(KEY_Width,data.dRailWidth);
|
|
m_mapSpecXData.SetAt(KEY_THICKT1,data.dSlabThick);
|
|
m_mapSpecXData.SetAt(KEY_THICKT2,data.dGirderThick);
|
|
m_mapSpecXData.SetAt(KEY_OPENING,data.bAddOpening);
|
|
m_mapSpecXData.SetAt(KEY_HEIGHT,data.duFrame);
|
|
m_mapSpecXData.SetAt(KEY_HEIGHT1,data.dvFrame);
|
|
m_mapSpecXData.SetAt(KEY_HEIGHT2,data.dWinHeight);
|
|
m_mapSpecXData.SetAt(KEY_BOMEL,data.dBomEl);
|
|
m_mapSpecXData.SetAt(KEY_BEAMH,data.dBeamH);
|
|
|
|
m_mapSpecXData.SetAt(KEY_MATERIAL,data.m_sMaterial);
|
|
m_mapSpecXData.SetAt(KEY_FACTORY,data.m_sFactory);
|
|
m_mapSpecXData.SetAt(KEY_NO,data.m_sNo);
|
|
|
|
//½ØÃæ
|
|
SetSection(data.dGirderThick,data.dRailHeight,data.dRailHeight * 0.5,kMid);
|
|
}
|
|
|
|
void AecDbBalcony::GetBalconyData(BalconyData& data) const
|
|
{
|
|
assertReadEnabled();
|
|
|
|
m_mapSpecXData.GetAt(KEY_REDGE,data.nRailEdge);
|
|
m_mapSpecXData.GetAt(KEY_HEIGHT,data.dRailHeight);
|
|
m_mapSpecXData.GetAt(KEY_Width,data.dRailWidth);
|
|
m_mapSpecXData.GetAt(KEY_THICKT1,data.dSlabThick);
|
|
m_mapSpecXData.GetAt(KEY_THICKT2,data.dGirderThick);
|
|
m_mapSpecXData.GetAt(KEY_OPENING,data.bAddOpening);
|
|
m_mapSpecXData.GetAt(KEY_HEIGHT,data.duFrame);
|
|
m_mapSpecXData.GetAt(KEY_HEIGHT1,data.dvFrame);
|
|
m_mapSpecXData.GetAt(KEY_HEIGHT2,data.dWinHeight);
|
|
m_mapSpecXData.GetAt(KEY_BOMEL,data.dBomEl);
|
|
m_mapSpecXData.GetAt(KEY_BEAMH,data.dBeamH);
|
|
|
|
m_mapSpecXData.GetAt(KEY_MATERIAL,data.m_sMaterial);
|
|
m_mapSpecXData.GetAt(KEY_FACTORY,data.m_sFactory);
|
|
m_mapSpecXData.GetAt(KEY_NO,data.m_sNo);
|
|
}
|
|
|
|
Acad::ErrorStatus AecDbBalcony::dwgInFields(AcDbDwgFiler* pFiler)
|
|
{
|
|
AssertWriteEnabled();
|
|
|
|
//----- Read parent class information first.
|
|
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) ;
|
|
|
|
if ( version > AecDbBalcony::kCurrentVersionNumber )
|
|
return (Acad::eMakeMeProxy);
|
|
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus AecDbBalcony::dwgOutFields(AcDbDwgFiler* pFiler) const
|
|
{
|
|
assertReadEnabled();
|
|
|
|
//----- Save parent class information first.
|
|
Acad::ErrorStatus es = AecDbEwPipeBase::dwgOutFields (pFiler) ;
|
|
if ( es != Acad::eOk )
|
|
return (es) ;
|
|
|
|
//----- Object version number needs to be saved first
|
|
if ( (es =pFiler->writeUInt32 (AecDbBalcony::kCurrentVersionNumber)) != Acad::eOk )
|
|
return (es) ;
|
|
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus AecDbBalcony::dxfInFields(AcDbDxfFiler* pFiler)
|
|
{
|
|
return Acad::eOk;
|
|
}
|
|
|
|
Acad::ErrorStatus AecDbBalcony::dxfOutFields(AcDbDxfFiler* pFiler) const
|
|
{
|
|
return Acad::eOk;
|
|
}
|
|
|
|
void AecDbBalcony::subList() const
|
|
{
|
|
acutPrintf(_T("\nÑǫ̂:"));
|
|
AecDbEwPipeBase::subList();
|
|
}
|
|
|
|
Acad::ErrorStatus AecDbBalcony::subTransformBy(const AcGeMatrix3d &xform)
|
|
{
|
|
AecDbEwPipeBase::subTransformBy(xform);
|
|
|
|
double dBomEl = 0;
|
|
m_mapSpecXData.GetAt(KEY_BOMEL, dBomEl);
|
|
|
|
AcGePoint3d pt(0, 0, dBomEl);
|
|
pt.transformBy(xform);
|
|
m_mapSpecXData.SetAt(KEY_BOMEL, pt.z);
|
|
|
|
return Acad::eOk;
|
|
}
|
|
|
|
Acad::ErrorStatus AecDbBalcony::Draw2d(AcGiDraw &dc) const
|
|
{
|
|
assertReadEnabled();
|
|
|
|
if ( dc.IsDragging() )
|
|
{
|
|
//return Acad::eOk;
|
|
}
|
|
|
|
//ͼ²ã
|
|
AcDbObjectId idLay = dc.GetLayerId();
|
|
dc.SetLayer(layerId());
|
|
|
|
int nCrBk = dc.GetColor();
|
|
int nColor = nCrBk;
|
|
if ( m_mapSpecXData.GetAt(_T("COLOR"),nColor) )
|
|
{
|
|
dc.SetColor(nColor);
|
|
}
|
|
|
|
if ( Draw2DBuffers(dc))
|
|
{
|
|
dc.SetLayer(idLay);
|
|
dc.SetColor(nCrBk);
|
|
return Acad::eOk;
|
|
}
|
|
|
|
AecDbXDrawPointer aecDbXDraw(this,_T("AecDbBalconyDraw"));
|
|
aecDbXDraw.Draw2d(dc);
|
|
|
|
AcDbVoidPtrArray arEntPtrs;
|
|
dc.Get2dBuffer(arEntPtrs);
|
|
Add2DBuffer(arEntPtrs);
|
|
|
|
dc.SetLayer(idLay);
|
|
dc.SetColor(nCrBk);
|
|
return Acad::eOk;
|
|
}
|
|
|
|
Acad::ErrorStatus AecDbBalcony::Draw3d(AcGiDraw &dc) const
|
|
{
|
|
assertReadEnabled();
|
|
|
|
if ( dc.IsDragging() )
|
|
{
|
|
//return Acad::eOk;
|
|
}
|
|
|
|
//ͼ²ã
|
|
AcDbObjectId idLay = dc.GetLayerId();
|
|
dc.SetLayer(layerId());
|
|
|
|
int nCrBk = dc.GetColor();
|
|
int nColor = nCrBk;
|
|
if ( m_mapSpecXData.GetAt(_T("COLOR"),nColor) )
|
|
{
|
|
dc.SetColor(nColor);
|
|
}
|
|
|
|
if ( Draw3DBuffers(dc))
|
|
{
|
|
dc.SetLayer(idLay);
|
|
dc.SetColor(nCrBk);
|
|
return Acad::eOk;
|
|
}
|
|
|
|
AecDbXDrawPointer aecDbXDraw(this,_T("AecDbBalconyDraw"));
|
|
aecDbXDraw.Draw3d(dc);
|
|
|
|
AcDbVoidPtrArray arEntPtrs;
|
|
dc.Get3dBuffer(arEntPtrs);
|
|
Add3DBuffer(arEntPtrs);
|
|
|
|
dc.SetLayer(idLay);
|
|
dc.SetColor(nCrBk);
|
|
|
|
return Acad::eOk;
|
|
}
|