#ifndef __DBPOLYPATH_H #define __DBPOLYPATH_H #ifndef _TDBENTITY_H_ #include "TDbEntity.h" #endif // TDbColumn class TARCH_EXP TDbPolyPathEnt: public TDbEntity { private: void *operator new[](size_t nSize) { return 0;} void operator delete[](void *p) {}; void *operator new[](size_t nSize, const char *file, int line) { return 0;} const static Adesk::UInt8 g_nVersion; protected: AcDbSoftPointerId m_idBind; //绑定的实体 public: ACRX_DECLARE_MEMBERS(TDbPolyPathEnt); TDbPolyPathEnt(); ~TDbPolyPathEnt(); virtual BOOL IsValid() const; virtual void CopyPropertiesFrom(AcDbEntity *pSrcEntity, unsigned gMatchFlag); // Overriden function from AcDbEntity virtual Acad::ErrorStatus subGetOsnapPoints( AcDb::OsnapMode osnapMode, INT_PTR gsSelectionMark, const AcGePoint3d& ptPick, const AcGePoint3d& lastPoint, const AcGeMatrix3d& viewXform, AcGePoint3dArray& snapPoints, AcDbIntArray& geomIds) const; virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler* pFiler) const; virtual Acad::ErrorStatus dwgInFields (AcDbDwgFiler*); virtual Acad::ErrorStatus dxfInFields (AcDbDxfFiler* pFiler); virtual Acad::ErrorStatus dxfOutFields(AcDbDxfFiler*) const; virtual Acad::ErrorStatus subGetGripPoints(AcGePoint3dArray& gripPoints, AcDbIntArray& osnapModes, AcDbIntArray& geomIds) const; virtual Acad::ErrorStatus subGetStretchPoints(AcGePoint3dArray & stretchPoints) const; virtual Acad::ErrorStatus subTransformBy(const AcGeMatrix3d& xform); virtual Acad::ErrorStatus subMoveGripPointsAt(const AcDbIntArray& indices, const AcGeVector3d& offset); virtual Acad::ErrorStatus subMoveStretchPointsAt(const AcDbIntArray& indices, const AcGeVector3d& offset); Acad::ErrorStatus subDeepClone(AcDbObject* pOwner, AcDbObject*& pClonedObject, AcDbIdMapping& idMap, Adesk::Boolean isPrimary) const; // derived from AcDbObject, Reactor函数 virtual void erased(const AcDbObject* pDbObj, Adesk::Boolean erasing = Adesk::kTrue); virtual void modified(const AcDbObject* pDbObj); // SetMethod virtual void SetElevationAt(int idx, double nElev); virtual void SetSweepAngleAt(int idx, double nAng); virtual BOOL AddVertex(const XPoint &ptAdd); virtual BOOL RemoveVertexAt(int nPos); virtual void SetNormal(const XVector3D &vt); void UnBind(); Acad::ErrorStatus SetBindObject(const AcDbObjectId &id); // GetMethos AcDbObjectId GetBindObjectId() const; BOOL IsBind() const; void GetLocalMatrix(const AcGeMatrix3d& xform, ads_matrix &mat) const; virtual XVector3D GetNormal() const; virtual double GetElevationAt(int idx) const; virtual double GetSweepAngleAt(int idx) const; virtual BOOL GetClosestPoint2d(const XPoint &ptTest, XPoint &ptOnCurve) const; // >0 命中顶点; <0 命中边; 0--没有命中 // abs(nRet)-1 为命中目标序号 virtual int HitTestOnBase2d(const XPoint &ptTest, double nTol=_DIST_SNAP) const; virtual Acad::ErrorStatus GetGripText(int i, CString &cs) const; }; TARCH_IMPEXP int EditPolyPathEnt0(AcDbObjectId id); #endif