//-----------------------------------------------------------------------------+ // Copyright (C), 1998-2007, Beijing Tangent Software Co. Ltd. // = FileName : TGGeCircle类 // = Version : ver2.0 // = Author : wlw // = CreateDate : 2002-09-09 // = Description: TGGeCircle类声明 // = Maintainers: // //-----------------------------------------------------------------------------+ #ifndef _TGGECIRCLE_H_ #define _TGGECIRCLE_H_ #ifndef _TGGESHAPE_H_ #include "TGGeShape.h" #endif #ifndef _TADSGEPOINT3D_H_ #include "TADSGePoint3d.h" #endif class TGGeArc; class TGGeLine; class TEntitySet; class GEOAPI TGGeCircle : public TGGeShape { public: TGGeCircle(); TGGeCircle(const TGGeCircle &src); TGGeCircle(const ads_point, const ads_point); TGGeCircle(const ads_point ptcenter,double dradius); TGGeCircle(const TEntitySet &entCircle, ads_matrix mat = NULL); TGGeCircle(const TADSGePoint3d &pt1, const TADSGePoint3d &pt2, const TADSGePoint3d &pt3); virtual ~TGGeCircle(); virtual bool IsKindOf(TEntityId entType) const; virtual TEntityId Type() const; virtual void CopyFrom(const TGGeEntity* pSrc); virtual ShapeType GetShapeType() const; virtual int Intersection(const TGGeLine* pLine, ads_point ptrp1 = NULL, ads_point ptrp2 = NULL) const; virtual int Intersection(const TGGeArc* pArc, ads_point ptrp1 = NULL, ads_point ptrp2 = NULL) const; virtual int Intersection(const TGGeCircle* pCir, ads_point ptrp1 = NULL, ads_point ptrp2 = NULL) const; virtual int GetExtend(ads_point lowPt, ads_point upPt) const; virtual int GetSubArc(const TADSGePoint3d& ptloc, ads_real dchordLen, TGGeArc& xarcres) const; virtual int Make(const TCHAR* szlay = NULL) const; virtual int Modify(const TEntitySet* pEntity) const; virtual int MakeEntity(const TEntitySet* pEntity) const; virtual void Center(ads_point ptCen); //图形长度,周长 virtual ads_real GetLength() const; virtual ads_real Area() const; virtual int HitTest2d(const TADSGePoint3d &ptTest) const; virtual int OSnap(int nMode, TADSGePoint3d &ptPick) const; //第一象限点圆心变换,求半径 virtual void TransUCS(ads_matrix mat); int operator !() const; TGGeCircle& operator = (const TGGeCircle &src); bool operator == (const TGGeCircle &src) const; TGGeCircle Offset(ads_real dist) const; TADSGePoint3d GetCenterPt(); TADSGePoint3d GetCenterPt() const; void SetCenterPt(TADSGePoint3d pt); double GetRadius() const; double GetRadius(); void SetRadius(double dR); bool Set(const TADSGePoint3d &ptStart, const TADSGePoint3d &ptOn, const TADSGePoint3d &ptEnd); void Set(const TADSGePoint3d &diaPt1, const TADSGePoint3d &diaPt2); int PtOnCircle(const TADSGePoint3d &pt); public: TADSGePoint3d m_ptCenter; double m_dRadius; }; inline TGGeEntity::TEntityId TGGeCircle::Type() const { return TGGeEntity::eCircle; } #endif