#pragma once #include "AecDbOpening.h" class DLLIMPEXP AecDbGroupXOpening : public AecDbXOpening { public: ACRX_DECLARE_MEMBERS(AecDbGroupXOpening); protected: static Adesk::UInt32 kCurrentVersionNumber; public: AecDbGroupXOpening(void); ~AecDbGroupXOpening(void); int GetOpeningNum() const {assertReadEnabled();return m_lstOpening.length();} AecDbXOpening* operator[](int i) {return m_lstOpening[i];} void Reset(){assertWriteEnabled();m_lstOpening.removeAll();} void Append(AecDbXOpening*pOpening){assertWriteEnabled();m_lstOpening.append(pOpening);} //位置排序计算调整,只计算一次 bool PositionSideBySide(); //生成标准的墙体2D的图元 bool GetStandardDraw2d(AecComplexCurve& draw2d,bool bHasEnd = true) const; void GetSideLines(AecComplexCurve& drawSides,const AcGeVector3d& vtDir) const; virtual bool GetForHouseSubtract(AcDbVoidPtrArray& arSolidPtrs) const; public: virtual void subList() const; virtual Acad::ErrorStatus subTransformBy(const AcGeMatrix3d& xform); virtual Acad::ErrorStatus subGetGripPoints( AcDbGripDataPtrArray& grips, const double curViewUnitSize, const int gripSize, const AcGeVector3d& curViewDir, const int bitflags) const; virtual Acad::ErrorStatus subMoveGripPointsAt(const AcDbVoidPtrArray& appData, const AcGeVector3d& offset, const int bitflags); virtual Acad::ErrorStatus subGetStretchPoints(AcGePoint3dArray& stretchPoints) const; virtual Acad::ErrorStatus subMoveStretchPointsAt(const AcDbIntArray& indices,const AcGeVector3d& offset); virtual Acad::ErrorStatus dwgInFields(AcDbDwgFiler* pFiler); virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler* pFiler) const; virtual Acad::ErrorStatus dxfInFields(AcDbDxfFiler* pFiler); virtual Acad::ErrorStatus dxfOutFields(AcDbDxfFiler* pFiler) const; virtual Acad::ErrorStatus subErase(Adesk::Boolean erasing); protected: virtual Acad::ErrorStatus Draw2d(AcGiDraw &dc) const; virtual Acad::ErrorStatus Draw3d(AcGiDraw &dc) const; public: virtual int GetDraw2dables(Adesk::UInt16 nDrawStyle, AcDbVoidPtrArray& arEntPtrs) const; virtual int GetDraw3dables(AcDbVoidPtrArray& arEntPtrs,bool bWriteBimInfo/* = false */) const; virtual int GetSectionDraw(const AcGePoint3d& ptFr,const AcGePoint3d& ptTo,const AcGeVector3d& vtViewDir,const AcGeVector3d& vtTo, AcDbVoidPtrArray& arRegionPtrs) const; protected: AcArray m_lstOpening; };