//-----------------------------------------------------------------------------+ // Copyright (C), 1998-2007, SH Software Co. Ltd. // = FileName : XLinearEnt.h // = Version : ver2.0 // = Author : zjq // = CreateDate : 2002-09-09 // = Description: 线性图形基类XLinearEnt类的声明 // = Maintainers: // //-----------------------------------------------------------------------------+ #ifndef _XLINEARENT_H_ #define _XLINEARENT_H_ #ifndef _XCURVE_H_ #include "XCurve.h" #endif class XArc; class XCircle; class GEOAPI XLinearEnt : public XCurve { public: virtual bool IsKindOf(TEntityId entType) const; virtual TEntityId Type() const; virtual void TransformBy(ads_matrix mat); virtual int GetExtend(XPoint &ptlow, XPoint &ptup) const; //图形长度,周长 virtual ads_real GetLength() const; virtual int Make(const TCHAR *szlay = NULL) const; virtual int MakeEntity(const Entity* pEntity) const; // 0--错误;1-左边;2-右边;3-起始点;4-终止点;5-线内;6-起始侧延长线;7-终止侧延长线 virtual int HitTest2d(const XPoint &ptTest) const; virtual XPoint MidPoint() const; virtual void SetPoints(const XPoint& pt1, const XPoint& pt2); virtual int OSnap(int nMode, XPoint &ptPick) const; virtual int Intersection(const XArc* pArc, ads_point ptrp1 = NULL, ads_point ptrp2 = NULL) const; virtual int Intersection(const XCircle* pCircle, ads_point ptrp1 = NULL, ads_point ptrp2 = NULL) const; virtual void CopyFrom(const XEntity* pImpSrc); protected: XLinearEnt(); virtual ~XLinearEnt(); }; #endif