//-----------------------------------------------------------------------------+ // Copyright (C), 1998-2007, Beijing Tangent Software Co. Ltd. // = FileName : TGGiExplodeDraw 类 // = Version : ver2.0 // = Author : wlw // = CreateDate : 2002-09-09 // = Description: TGGiExplodeDraw 声明 // = Maintainers: // //-----------------------------------------------------------------------------+ #ifndef _TGGIEXPLODEDRAW_H_ #define _TGGIEXPLODEDRAW_H_ #ifndef _TGGIEXPLODEDRAWBASE_H_ #include "TGGiExplodeDrawBase.h" #endif #ifndef _TADSGEPOINT3D_H_ #include "TADSGePoint3d.h" #endif #ifndef _TGGELINE_H_ #include "TGGeLine.h" #endif #ifndef _TGGEARC_H_ #include "TGGeArc.h" #endif #ifndef _TGGECIRCLE_H_ #include "TGGeCircle.h" #endif #ifndef _TGGEPOLY2D_H_ #include "TGGePoly2D.h" #endif #ifndef _TGGE3DFACE_H_ #include "TGGe3DFace.h" #endif class GEOAPI TGGiExplodeDraw : public TGGiExplodeDrawBase { public: TGGiExplodeDraw(AcDbVoidPtrArray &entArray); virtual ~TGGiExplodeDraw(); virtual void SetPropertiesFrom(const AcDbEntity *pEnt); virtual BOOL IsFullExplode() const; virtual BOOL IsExportTch4() const; // derive from TGGiExplodeDrawBase virtual void Polyline(AcDbPolyline &pline); virtual void DrawLine(const TGGeLine &ln, double nThickness = 0.0); virtual void DrawArc(const TGGeArc &ar, double nThickness = 0.0); virtual void DrawCircle(const TGGeCircle &cir, double nThickness = 0.0); virtual void DrawSolid(const TGGePoly2D &polyOutline); //对指定的封闭区域填充 virtual void DrawHatch(const TGGePoly2D &polyOutline, const TCHAR *pszPattern, double nScale); virtual void DrawHatchEx(const TGGePoly2D &polyOutline, const TCHAR *pszPattern, double nScale,double rotation); virtual void DrawBlock(const AcDbBlockTableRecord &blockRec, const TADSGePoint3d &ptInsert, const AcGeScale3d &scales, double nRot, BOOL bMakeBlock); virtual void DrawAtomicEntSet(const AcDbVoidPtrArray &entSet, const AcGeMatrix3d &matTrans); virtual void DrawEntity(const AcDbEntity &ent); // Text method virtual void DrawText(const TCHAR *pszContent = NULL); virtual void DrawTextFit(const TCHAR *pszText, TADSGePoint3d pt1, TADSGePoint3d pt2, double nTextHeight); // 3D Draw // 根据给定的边界和凸起方向, 绘制三维外壳 virtual void DrawMesh(const TGGePoly2D &polyOut, const TVector3D &vtOffset); // 显示分别连接两个区域的边缘构成的侧面 virtual void DrawMesh(const TGGePoly2D &polyRegion1, const TGGePoly2D &polyRegion2); virtual void DrawMesh( const Adesk::UInt32 rows, const Adesk::UInt32 columns, const AcGePoint3d* pVertexList, const AcGiEdgeData* pEdgeData = NULL); // 根据给定的内外边界, 绘制三维外壳, 已经对区域进行离散 virtual void DrawShell(const TGGePoly2D &polyOut, const TDPtrList &lstPolyIn); virtual void DrawShell(Adesk::UInt32 nbVertex, const AcGePoint3d* pVertexList, Adesk::UInt32 faceListSize, const Adesk::Int32* pFaceList, const AcGiEdgeData* pEdgeData = NULL); virtual void DrawBody(const TGGePoly2D &polySrc, const TVector3D &vtOffset); virtual void DrawBody(const TGGePoly2D &polyOut, const TGGePoly2D &polyIn, const TVector3D &vtOffset); virtual void DrawBody(const TGGePoly2D &polyOut, const TDPtrList &lstHoles,const TVector3D &vtOffset); virtual void DrawXPoly(const TGGePoly2D &poly,double nThickness = 0.0); virtual void DrawFace(const TGGe3DFace &face); virtual Adesk::UInt16 GetColor() const; virtual void SetColor(Adesk::UInt16 nColor); virtual AcDbObjectId GetLayerId() const; virtual AcDbObjectId GetLineTypeId() const; virtual AcDbObjectId GetMaterialId()const; virtual Acad::ErrorStatus SetLayer(const AcDbObjectId &id) ; virtual Acad::ErrorStatus SetLayer(const TCHAR *pszLay) ; virtual Acad::ErrorStatus SetLineType(const TCHAR *pltype); virtual Acad::ErrorStatus SetLineType(AcDbObjectId idLinetype); virtual Acad::ErrorStatus SetMaterial(AcDbObjectId idMaterial); virtual const TCHAR* Desc(); virtual Adesk::Boolean IsDragging() const; //add by xlc on 100629 TArch8.5 //virtual COLORREF GetTrueColor() const; //virtual void SetTrueColor(COLORREF crRef); virtual AcCmColor GetTrueColor() const; virtual void SetTrueColor(AcCmColor crRef); void SetIsDragging(Adesk::Boolean bDragging); static const TCHAR* Descriptor(); void Append(AcDbEntity *pEnt, BOOL bUseAutoProp = TRUE); BOOL MakeBlockInsert(const TADSGePoint3d &ptBase); AcDbVoidPtrArray * GetEntitySet(); public: static BOOL m_bFullExplode; static BOOL m_bExportTch4; protected: AcDbVoidPtrArray *m_pEntSet; AcDbObjectId m_idLinetype, m_idLayer,m_idMaterial; Adesk::UInt16 m_nColor; Adesk::Boolean m_bIsDragging; //add by xlc on 100629 TArch8.5 //COLORREF m_crColor; AcCmColor m_crColor; }; #endif