Files
envi-code/SourceCode/Code2026/Dimension/GeLine.h
T
2026-09-28 15:28:50 +08:00

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;
};