94 lines
2.7 KiB
C++
94 lines
2.7 KiB
C++
#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;
|
|
};
|
|
|
|
|