//-----------------------------------------------------------------------------+ // Copyright (C), 1998-2007, Beijing Tangent Software Co. Ltd. // = FileName : TPGeGLineRay3D.h // = Version : ver2.0 // = Author : xlc // = CreateDate : 2002-09-09 // = Description: 类的声明 射线 // = Maintainers: // //-----------------------------------------------------------------------------+ #ifndef _TPGEGLINERAY3D_H_ #define _TPGEGLINERAY3D_H_ #ifndef _TPGECURVE2D_H_ #include "TPGeCurve2D.h" #endif #ifndef _TGVECTOR3D_H_ #include "TGVector3D.h" #endif #ifndef _TPGEGLINE3D_H_ #include "TPGeGLine3D.h" #endif #ifndef _TPGELINE3D_H_ #include "TPGeLine3D.h" #endif #ifndef _TGPOINT_H_ #include "TGPoint.h" #endif #ifndef _TTABLE_H_ #include "TTable.h" #endif #ifndef _TGOBJECT_H_ #include "TGObject.h" #endif #ifndef _TGOBJECTLIST_H_ #include "TGObjectList.h" #endif #ifndef _TWFLAG_H_ #include "TWFlag.h" #endif class TGObject2D; class GEOAPI TPGeGLineRay3D:public TPGeGLine3D { DECLARE_RUN_TIME_CLASS(TPGeGLineRay3D) public: TPGeGLineRay3D(); TPGeGLineRay3D(const TPGeLine3D&line); TPGeGLineRay3D(const TGVector3D&vt,const TGPoint&pt); TPGeGLineRay3D(const TGPoint&pt0,const TGPoint&pt1); virtual ~TPGeGLineRay3D(); //重载 TPGeCurve3D //存在区间[0,正无穷) virtual bool IsFinite(bool bStart)const; virtual void Split(const TTable &paTable,TGObjectList&res)const; //重载 TGObject3D virtual TGObject2D* Convert2D()const; //重载 TGObject virtual TGObject * Clone()const; virtual bool IsInclude(const TGObject&obj)const; virtual bool Intersect(const TGObject&obj,TGObjectList&res)const; virtual GRelation HitTest(const TGPoint&pt)const; bool IsSameRay(const TPGeGLineRay3D&ray)const; }; #endif