//-----------------------------------------------------------------------------+ // Copyright (C), 1998-2007, Beijing Tangent Software Co. Ltd. // = FileName : TGGeHatch 类 // = Version : ver2.0 // = Author : wlw // = CreateDate : 2002-09-09 // = Description: TGGeHatch 声明 // = Maintainers: // //-----------------------------------------------------------------------------+ #ifndef _TGGEHATCH_H_ #define _TGGEHATCH_H_ #ifndef _TGGEPOLY2D_H_ #include "TGGePoly2D.h" #endif class GEOAPI TGGeHatch : public TGGeEntity { public: TGGeHatch(TGGePoly2D poly,const TCHAR* sName,double nScale = 1.0); TGGeHatch(TGGePoly2D poly,const TCHAR* sName,double nScale,double nAngle); virtual ~TGGeHatch(); virtual bool IsKindOf(TEntityId entType) const; virtual TEntityId Type() const; virtual void CopyFrom(const TGGeEntity* pImpSrc); virtual bool IsSolid()const; virtual TGGePoly2D GetHatchPoly()const; virtual void SetHatchPoly(TGGePoly2D poly); virtual CString GetHatchName()const; virtual void SetHatchName(CString sHatchName); virtual double GetHatchScale()const; virtual void SetHatchScale(double dScale); virtual double GetHatchRotation()const; virtual void SetHatchRotation(double dRotation); void AppendPoly(const TGGePoly2D &poly); void AppendPoly(const std::vector &polys); const std::vector& GetPolys() const { return m_polys; } public: // 此变量独立出来而没有存入 vector 内是有原因的。 // 当 TGGeHatch 被用于房间实体时,在填充中可能会为文字而挖出几个洞口。 // 当上述情况出现时,m_polys 就会发挥作用。 // m_poly 保存的就是最外面的曲线,m_polys则保存洞口的曲线。 // 要保证 m_polys 全部都在 m_poly 曲线内部。 TGGePoly2D m_poly; std::vector m_polys; CString m_sHatchName; double m_dScale; double m_dRotation; }; #endif