//-----------------------------------------------------------------------------+ // Copyright (C), 1998-2007, Beijing Tangent Software Co. Ltd. // = FileName : TPGeGLineSeg3D.h // = Version : ver2.0 // = Author : xlc // = CreateDate : 2002-09-09 // = Description: 类的声明 // = Maintainers: // //-----------------------------------------------------------------------------+ #ifndef _TPGEGLINESEG3D_H_ #define _TPGEGLINESEG3D_H_ #ifndef _TPGECURVE3D_H_ #include "TPGeCurve3D.h" #endif #ifndef _TGVECTOR3D_H_ #include "TGVector3D.h" #endif #ifndef _TPGEGLINE3D_H_ #include "TPGeGLine3D.h" #endif #ifndef _TGPOINT_H_ #include "TGPoint.h" #endif #ifndef _TTABLE_H_ #include "TTable.h" #endif #ifndef _TPGEEXTEND2D_H_ #include "TPGeExtend2D.h" #endif #ifndef _TPGEEXTEND3D_H_ #include "TPGeExtend3D.h" #endif #ifndef _TGOBJECT_H_ #include "TGObject.h" #endif #ifndef _TGOBJECTLIST_H_ #include "TGObjectList.h" #endif #ifndef _TWFLAG_H_ #include "TWFlag.h" #endif #ifndef _TGMLINE2D_H_ #include "TGMLine2D.h" #endif class TGObject2D; class GEOAPI TPGeGLineSeg3D : public TPGeGLine3D { DECLARE_RUN_TIME_CLASS(TPGeGLineSeg3D) public: TPGeGLineSeg3D(); TPGeGLineSeg3D(const TPGeLine3D& line); TPGeGLineSeg3D(const TGVector3D& vt,const TGPoint& pt); TPGeGLineSeg3D(const TGPoint& pt0,const TGPoint& pt1); virtual ~TPGeGLineSeg3D(); //重载 TPGeCurve3D virtual double Length()const; virtual bool IsFinite(bool bStart)const; virtual void GetStartPoint(TGPoint&pt)const; virtual void GetEndPoint(TGPoint&pt)const; virtual void Reverse(); virtual void Split(const TTable& paTable,TGObjectList& res)const; //重载 TGObject3D virtual TGObject2D* Convert2D()const; //重载 TGObject virtual TGObject * Clone()const; virtual bool Intersect(const TGObject& obj,TGObjectList& res)const; virtual GRelation HitTest(const TGPoint& pt)const; virtual bool IsInclude(const TGObject& obj)const; virtual bool GetExtend2D(TPGeExtend2D& ext)const; virtual bool GetExtend3D(TPGeExtend3D& ext)const; const TGPoint& GetStartPoint()const; TGPoint GetEndPoint()const; TGPoint GetMidPoint()const; const TPGeLine3D &GetGeLine()const; bool IsSameSeg(const TPGeGLineSeg3D& seg, bool bSameDirection = false)const; }; #endif