73 lines
2.4 KiB
C++
73 lines
2.4 KiB
C++
#pragma once
|
|
#include "GeCircle.h"
|
|
#include "GeSector.h"
|
|
#include "ADSGePoint3d.h"
|
|
|
|
|
|
class EntitySet;
|
|
class GeArc : public GeCircle, public GeSector
|
|
{
|
|
public :
|
|
GeArc();
|
|
GeArc(const GeArc &src);
|
|
GeArc(const EntitySet &aCircle);
|
|
GeArc(const EntitySet &aArc, ads_matrix mat);
|
|
GeArc(const ADSGePoint3d &spt, const ADSGePoint3d &ept, ads_real dang);
|
|
GeArc(const ADSGePoint3d &ptStart, const ADSGePoint3d &pt2, const ADSGePoint3d &ptEnd);
|
|
GeArc(ads_point ptcenter, double dradius, double ptstartAngle, double ptendAngle);
|
|
virtual ~GeArc();
|
|
|
|
virtual bool IsKindOf(TEntityId entType) const;
|
|
virtual TEntityId Type() const;
|
|
virtual void CopyFrom(const GeEntity* pImpSrc);
|
|
|
|
virtual int Make(const TCHAR *szlay = NULL) const;
|
|
virtual int Modify(const EntitySet* pEnt) const;
|
|
virtual int GetExtend(ads_point lowPt, ads_point upPt) const;
|
|
virtual int MakeEntity(const EntitySet* pEnt) const;
|
|
virtual int GetSubArc(const ADSGePoint3d &ptloc, ads_real dchordLen, GeArc &arcRes) const;
|
|
//图形长度,周长
|
|
virtual ads_real GetLength() const;
|
|
|
|
GeArc& operator = (const GeSector &src);
|
|
GeArc& operator = (const GeArc &src);
|
|
bool operator == (const GeArc &src) const;
|
|
int operator ! () const;
|
|
|
|
virtual int HitTest2d(const ADSGePoint3d &ptTest) const;
|
|
virtual int OSnap(int nMode, ADSGePoint3d &ptPick) const;
|
|
|
|
bool Set(const ADSGePoint3d &spt, const ADSGePoint3d &ept, ads_real dang);
|
|
bool Set(const ADSGePoint3d &ptStart, const ADSGePoint3d &ptOn, const ADSGePoint3d &ptEnd);
|
|
void SetAngleByPoints(const ADSGePoint3d &ptStart, const ADSGePoint3d &ptEnd);
|
|
|
|
void GetStartPoint(ADSGePoint3d &ptStart) const;
|
|
void GetEndPoint(ADSGePoint3d &ptEnd) const;
|
|
|
|
void MidPoint(ADSGePoint3d &ptres) const;
|
|
ADSGePoint3d MidPoint() const;
|
|
|
|
//求弦长
|
|
ads_real ChordLength() const;
|
|
// 扇形面积
|
|
ads_real Area() const;
|
|
//起点到终点的积分面积
|
|
ads_real PathArea() const;
|
|
|
|
GeArc Offset(ads_real dist) const;
|
|
|
|
virtual void TransUCS(ads_matrix mat);
|
|
|
|
//上华direction
|
|
ads_real IDirection(int pt) const;
|
|
ads_real ODirection(int pt) const;
|
|
|
|
virtual int Intersection(const GeLine* pLine, ads_point ptRp1 = NULL, ads_point ptRp2 = NULL) const;
|
|
virtual int Intersection(const GeArc* pArc, ads_point ptRp1 = NULL, ads_point ptRp2 = NULL) const;
|
|
virtual int Intersection(const GeCircle* pCir, ads_point ptRp1 = NULL, ads_point ptRp2 = NULL) const;
|
|
|
|
ads_real * SelectNear(ads_point pt1, ads_point pt2) const;
|
|
int PtOnArc(const ADSGePoint3d &pt) const;
|
|
};
|
|
|