//------------------------------------------------------------------------+ // Copyright (C), 1998-2012, Beijing Tangent Software Co. Ltd. // = FileName : TDbStruSelfBase.h // = Version : ver1.0 // = Author : zyc // = CreateDate : 2012-11-05 // = Description: 独立基础平面图类声明 // = Maintainers: // //------------------------------------------------------------------------+ #ifdef TASD #ifndef _TDBSTRUSELFBASE_H_ #define _TDBSTRUSELFBASE_H_ #ifndef _TDBSTRUENTITYBASE_H_ #include "TDbStruEntityBase.h" #endif // KEY_SECTYP int 轮廓线类型 // KEY_B double 独基宽 // KEY_H double 独基高 // KEY_POS AcGePoint3d 插入点 // KEY_AXANG double 轴转角 // KEY_H2 double 独基z方向高度 // KEY_CLAB CString 构件编号 #define KEY_INSPTX _T("InsPtX") // double 偏心距X #define KEY_INSPTY _T("InsPtY") // double 偏心距Y class TARCH_EXP TDbStruSelfBase : public TDbStruEntityBase { DECLARE_TENTBASE(); ACRX_DECLARE_MEMBERS(TDbStruSelfBase); public: TDbStruSelfBase(); virtual ~TDbStruSelfBase(); // AcDbEntity virtual Acad::ErrorStatus dwgInFields (AcDbDwgFiler* pFiler); virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler* pFiler) const; virtual Acad::ErrorStatus subTransformBy(const AcGeMatrix3d& xform); 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 subGetClassID(CLSID* pClsid) const; // TEntityBase virtual Acad::ErrorStatus GetGripText(int i, CString &cs) const; virtual Acad::ErrorStatus ExplodeOrDraw2d(TGGiExplodeDrawBase &dc) const; virtual Acad::ErrorStatus GetExtents2d(TADSGePoint3d &ptLow, TADSGePoint3d &ptUp) const; virtual Acad::ErrorStatus GetExtents(TADSGePoint3d &ptLow, TADSGePoint3d &ptUp) const; virtual const TCHAR *GetDefaultLayer() const; virtual BOOL IsValid() const; // 支持夹点ctrl功能切换 virtual int GetCtrlToggleIndex()const; virtual void CopyPropertiesFrom(AcDbEntity *pSrcEntity, unsigned gMatchFlag); virtual TEntityBase::DrawType GetDrawType() const; virtual bool GetStandardFaceBody(AcDbVoidPtrArray& arFacePtrs) const; virtual bool GetSafeProtectedSpace(AcDbVoidPtrArray& arFacePtrs) const; virtual bool GetSection( const AcDbFace &face, const AcGeVector3d &vtPlaneSecDir, std::vector §ionRecords, AcDbVoidPtrArray &arFillPtrs) const; virtual CString GetXml(const AcGeMatrix3d& mat) const; virtual int GetFirstVersion()const; virtual bool IsModelEntity() const; void GenerateOutline(); // 生成轮廓线 const TGGePoly2D& GetOutline(); // 获取轮廓线 // 裁剪关系数组操作 void SetAssocIds(const AcDbObjectIdArray& ids); void GetAssocIds(AcDbObjectIdArray& ids); void RemoveAssocIds(const AcDbObjectId& id); private: void UpdateInfoFromOutlineRect(); // 根据轮廓线获取实体数据:插入点、宽、高,矩形 void UpdateInfoToOutlineRect(); // 根据实体数据生成轮廓线,矩形 static const Adesk::UInt8 g_nVersion; TGGePoly2D m_polyOutline; AcDbObjectIdArray m_arAssocBeamIds; //裁剪独基的梁对象数组 }; #endif #endif