#pragma once #include "GeLinearEnt.h" #include "pointlist.h" class GeArc; class GeCircle; class EntitySet; class GePoly; class GeLine : public GeLinearEnt { public: GeLine(const GeLine& src); GeLine(int nflag = LS_INFINITE); GeLine(const ADSGePoint3d& ptThrough, ads_real dDrt); GeLine(const ads_point p1, const ads_point p2, int _flag = LS_INFINITE); GeLine(const EntitySet& entLine, int _flag = LS_INFINITE, ads_matrix tranMat = NULL); virtual ~GeLine(); virtual bool IsKindOf(TEntityId entType) const; virtual TEntityId Type() const; virtual void TransUCS(const resbuf *pfrom, const resbuf *pto); virtual void Reverse(); virtual ads_real PathArea() const; virtual void TransformBy(ads_matrix mat); virtual int GetExtend(ADSGePoint3d &ptlow, ADSGePoint3d &ptup) const; //图形长度,周长 virtual ads_real GetLength() const; virtual int Make(const TCHAR *szlay = NULL) const; virtual int MakeEntity(const EntitySet* pEntity) const; virtual int HitTest2d(const ADSGePoint3d &ptTest) const; virtual void SetPoints(const ADSGePoint3d& pt1, const ADSGePoint3d& pt2); virtual int OSnap(int nMode, ADSGePoint3d &ptPick) const; virtual int Intersection(const GeArc* pArc, ads_point ptrp1 = NULL, ads_point ptrp2 = NULL) const; virtual int Intersection(const GeCircle* pCircle, ads_point ptrp1 = NULL, ads_point ptrp2 = NULL) const; // virtual void CopyFrom(const GeEntity* pImpSrc); virtual int Intersection(const GeLine* pLine, ads_point ptrp = NULL) const; virtual int Intersection(GePoly* pPoly, class PointList& pts) const; int operator ! () const; GeLine& operator = (const GeLine& aLine); int operator != (const GeLine & aLine) const; bool operator == (const GeLine & aLine) const; virtual int OnWhichSide(const ADSGePoint3d &ptsrc) const; virtual int Modify(const EntitySet* pEntity) const; virtual int GetSubLine(const ADSGePoint3d &loc, ads_real dist, GeLine &res) const; virtual void SetElevation(ads_real delev); virtual ads_real Direction() const; virtual TVector3D Direction3d() const; virtual ads_real* NearPoint(const ads_point pt0); virtual ads_real* FarPoint(const ads_point pt0); virtual GeLine Offset(ads_real dist) const; virtual void SetLineFlag(int nFlag); virtual int GetLineFlag() const; void SetStartPoint(ADSGePoint3d ptStart); void GetStartPoint(ADSGePoint3d& ptStart); ADSGePoint3d GetStartPoint() const; void SetEndPoint(ADSGePoint3d ptEnd); void GetEndPoint(ADSGePoint3d& ptEnd); ADSGePoint3d GetEndPoint() const; ADSGePoint3d& StartPoint(); ADSGePoint3d& EndPoint(); ADSGePoint3d& StartPoint() const; ADSGePoint3d& EndPoint() const; void MidPoint(ADSGePoint3d &ptres) const; ADSGePoint3d MidPoint() const; public: ADSGePoint3d m_startPoint; ADSGePoint3d m_endPoint; int m_nFlag; };