#ifndef _DB_BAND_WIN_H #define _DB_BAND_WIN_H #include "DbCornerWin.h" #ifndef _TDBWALL_H_ #include "TDbWall.h" #endif //带形窗 class TARCH_EXP TDbBandWin:public TDbCornerWin { DECLARE_TENTBASE(); ACRX_DECLARE_MEMBERS(TDbBandWin); private: const static Adesk::UInt8 g_nVersion; protected: //TArch7数据 DList m_idMidWalls;//中间墙 AcGePoint3d m_ptStart,m_ptEnd;//起点和终点 //导出参数 XPoly2D m_polyFirst;//墙中路径 XPoly2D m_polyFirstBase;//墙基线路径 public: TDbBandWin(); void SetMidWallIds(const DList&idWalls); void SetStartPoint(XPoint pt){assertWriteEnabled();m_ptStart=pt;}//ok void SetEndPoint(XPoint pt){assertWriteEnabled();m_ptEnd=pt;}//ok double GetWidth()const{return m_polyFirstBase.Distance2d();}//ok XPoly2D GetPolyBase()const{return m_polyFirstBase;}//ok TDbOpening* GetOpening(long iWall)const; // sg add 120511,获取带形窗的形心线长度,含保温 double GetGeomCenterWidth() const; //override TDbCornerWin virtual const TCHAR* GetKindString()const{return _T("带形窗");}//ok virtual long GetWallNum()const{return 2+m_idMidWalls.Length();}//ok virtual AcDbObjectId GetWallId(long i)const; virtual void SetWallId(long i,const AcDbObjectId&id); virtual BOOL GetKeyCurves(XPoly2D &polyInside, XPoly2D &polyGlass1, XPoly2D &polyGlass2, XPoly2D &polyOutSide) const; virtual TDbOpening *AsOpening(const TDbWall *pWall) const{return GetOpening(FindWallId(pWall->objectId()));}//ok virtual BOOL UpdateParameters(); virtual void ValidateContainership(DList &lstWalls); // sg add 101115,根据8.5需求调整默认标注位置,返回默认标注墙ID编号 virtual long GetDefaultLabelWallNum() const; // sg add 110224,增加自动编号 virtual CString GetAutoLabel(bool &bAddNum)const; // sg add 101129,支持导出XML virtual CString GetXml(const AcGeMatrix3d& mat) const; // Override from AcDbEntity virtual Acad::ErrorStatus dwgInFields (AcDbDwgFiler*); virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler*) const; virtual Acad::ErrorStatus dxfInFields (AcDbDxfFiler*); virtual Acad::ErrorStatus dxfOutFields(AcDbDxfFiler*) const; virtual Acad::ErrorStatus subGetOsnapPoints( AcDb::OsnapMode osnapMode, INT_PTR gsSelectionMark, const AcGePoint3d& ptPick, const AcGePoint3d& lastPoint, const AcGeMatrix3d& viewXform, AcGePoint3dArray& snapPoints, AcDbIntArray& geomIds) const {return TDbEntity::GetOsnapPoints(osnapMode,gsSelectionMark,ptPick,lastPoint,viewXform,snapPoints,geomIds);} virtual Acad::ErrorStatus subGetGripPoints(AcGePoint3dArray& gripPoints, AcDbIntArray& osnapModes, AcDbIntArray& geomIds) const; virtual Acad::ErrorStatus subGetStretchPoints(AcGePoint3dArray & stretchPoints) const; virtual Acad::ErrorStatus subMoveGripPointsAt(const AcDbIntArray& indices, const AcGeVector3d& offset); virtual Acad::ErrorStatus subMoveStretchPointsAt(const AcDbIntArray& indices, const AcGeVector3d& offset); virtual Acad::ErrorStatus subTransformBy(const AcGeMatrix3d&xform); // Override form TEntityBase virtual void CopyPropertiesFrom(AcDbEntity *pSrcEntity, unsigned gMatchFlag); virtual int GetFirstVersion()const{return 7;}//ok virtual Acad::ErrorStatus DownGradeSave(int nDrawMode, AcDbVoidPtrArray &entSet, BOOL *bErase) {return TDbEntity::DownGradeSave(nDrawMode,entSet,bErase);}//ok virtual void GetTips(DList &) const; //取动态属性显示数据 virtual Acad::ErrorStatus GetGripText(int i, CString &cs) const; virtual Acad::ErrorStatus ExplodeOrDraw2d(XExplodeDraw&dc)const; virtual BOOL IsValid()const; virtual Acad::ErrorStatus GetPathPoly(XPoly2D&poly,AcGeVector3d &vt)const {assertReadEnabled();poly=m_polyFirst;vt=AcGeVector3d::kZAxis;return Acad::eOk;}//ok #if ADS>15 virtual void CreateGrip(); virtual Acad::ErrorStatus EntityToDim(long iGrip,long iDim,const AcDbEntity*pEnt); virtual Acad::ErrorStatus DimToEntity(long iGrip,long iDim,double newValue,const AcGeVector3d& offset); #endif // add by gjm 三维剖切 virtual bool GetSection(const AcDbFace &face, const AcGeVector3d& vtPlaneSecDir, std::vector §ionRecords, AcDbVoidPtrArray& arFillPtrs) const; }; #endif