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

146 lines
4.5 KiB
C++

//-------------------------------------------------------------------------------------------------------+
// Copyright (C), 1998-2007, SH Software Co. Ltd.
// = FileName : AecDbPolyCurveEnt.h
// = Version : ver2.0
// = Author : zjq
// = CreateDate : 2002-09-09
// = Description: 路径曲线类的声明
// = Maintainers:
//
//-------------------------------------------------------------------------------------------------------+
#ifndef _AecDbPolyCurveEnt_H_
#define _AecDbPolyCurveEnt_H_
#ifndef _AecCurveEntity_H_
#include "AecCurveEntity.h"
#endif
#ifndef _XPOLY3D_H_
#include "XPoly3D.h"
#endif
#ifndef _OBJINFOUNIT_H_
#include "ObjInfoUnit.h"
#endif
#ifndef Migration_H_
#include "TMigration.h"
#endif
class GEOAPI AecDbPolyCurveEnt: public AecCurveEntity
{
DECLARE_TENTBASE();
ACRX_DECLARE_MEMBERS(AecDbPolyCurveEnt);
public:
AecDbPolyCurveEnt();
virtual ~AecDbPolyCurveEnt();
//重载 AEntityBase
virtual int GetFirstVersion()const;
//取动态属性显示数据
virtual void GetTips(DList<ObjInfoUnit> &lstInfo) const;
virtual Acad::ErrorStatus GetGripText(int i, CString &cs) const;
virtual BOOL IsValid() const;
virtual void CopyPropertiesFrom(AcDbEntity *pSrcEntity, unsigned gMatchFlag);
#if ARX > 17
virtual void CreateGrip();
virtual Acad::ErrorStatus EntityToDim(long iGrip,long iDim,const AcDbEntity*pEnt);
virtual Acad::ErrorStatus DimToEntity(long iGrip,long iDim,double newValue,const AcGeVector3d& offset);
#endif
virtual Acad::ErrorStatus GetPathPoly(XPoly2D &polyPath,AcGeVector3d&normal)const;
virtual Acad::ErrorStatus SetPathPoly(const XPoly2D &polyPath,const AcGeVector3d&normal);
//重载 AecCurveEntity
virtual Acad::ErrorStatus SetBaseCurve(AcDbCurve*);
//临时对象,外部析构
virtual AcDbCurve* GetBaseCurve()const;
//重载 AcDbEntity
virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler* pFiler) const;
virtual Acad::ErrorStatus dwgInFields (AcDbDwgFiler*);
virtual Acad::ErrorStatus dxfInFields (AcDbDxfFiler* pFiler);
virtual Acad::ErrorStatus dxfOutFields(AcDbDxfFiler*) const;
#if (ADS > 15 && ADS < 18)
virtual Acad::ErrorStatus subGetOsnapPoints(AcDb::OsnapMode osnapMode,
INT_PTR gsSelectionMark,
const AcGePoint3d& pickPoint,
const AcGePoint3d& lastPoint,
const AcGeMatrix3d& viewXform,
AcGePoint3dArray& snapPoints,
AcDbIntArray& geomIds,
const AcGeMatrix3d& insertionMat) const;
virtual Acad::ErrorStatus subGetOsnapPoints(AcDb::OsnapMode osnapMode,
INT_PTR gsSelectionMark,
const AcGePoint3d& pickPoint,
const AcGePoint3d& lastPoint,
const AcGeMatrix3d& viewXform,
AcGePoint3dArray& snapPoints,
AcDbIntArray& geomIds) const;
#endif
virtual Acad::ErrorStatus subGetGripPoints( AcGePoint3dArray& gripPoints,
AcDbIntArray& osnapModes,
AcDbIntArray& geomIds) const;
virtual Acad::ErrorStatus subGetStretchPoints(AcGePoint3dArray& stretchPoints)const;
virtual Acad::ErrorStatus subMoveGripPointsAt(const AcDbIntArray& indices,
const AcGeVector3d& offset);
virtual Acad::ErrorStatus subTransformBy(const AcGeMatrix3d&mat);
virtual Adesk::Boolean subWorldDraw(AcGiWorldDraw* pWd);
//重载 AcDbObject
virtual Acad::ErrorStatus subDeepClone( AcDbObject* pOwner,
AcDbObject*& pClonedObject,
AcDbIdMapping& idMap,
Adesk::Boolean isPrimary) const;
virtual void erased(const AcDbObject* pDbObj, Adesk::Boolean erasing = Adesk::kTrue);
virtual void modified(const AcDbObject* pDbObj);
// >0 命中顶点; <0 命中边; 0--没有命中,abs(nRet)-1 为命中目标序号
int HitTestOnBase2d(const XPoint &ptTest, double nTol = XGeLib::_DIST_SNAP) const;
void SetSweepAngleAt(int idx,double a);
void SetElevationAt(int idx,double e);
void SetNormal(AcGeVector3d vt);
void UnBind();
Acad::ErrorStatus SetBindObject(const AcDbObjectId &id);
BOOL IsBind() const;
BOOL AddVertex(const XPoint &ptAdd);
BOOL RemoveVertexAt(int nPos);
void GetLocalMatrix(const AcGeMatrix3d& xform, ads_matrix &mat) const;
BOOL GetClosestPoint2d(const XPoint &ptTest, XPoint &ptOnCurve) const;
double GetElevationAt(int idx) const;
double GetSweepAngleAt(int idx) const;
AcDbObjectId GetBindObjectId() const;
AcGeVector3d GetNormal()const;
public:
static const Adesk::UInt8 g_nVersion;
protected:
AcDbSoftPointerId m_idBind; //绊定的实体
XPoly3D m_polyBase; //路径曲线
AcGeVector3d m_vtNormal; //法向
};
#endif