Files
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

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