83 lines
3.5 KiB
C++
83 lines
3.5 KiB
C++
#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
|
|
|