88 lines
3.7 KiB
C++
88 lines
3.7 KiB
C++
#ifndef __DBSTEP_H
|
|
#define __DBSTEP_H
|
|
//#include "DbEntity.h"
|
|
|
|
class TARCH_EXP TDbStep: public TDbEntity {
|
|
DECLARE_TENTBASE();
|
|
ACRX_DECLARE_MEMBERS(TDbStep);
|
|
private:
|
|
const static Adesk::UInt8 g_nVersion;
|
|
protected:
|
|
XPoly2D m_polyOutline; //平台轮廓和标高
|
|
Adesk::UInt32 m_nStepFlag; //有踏步的边
|
|
Adesk::UInt16 m_nStepNum; //踏步数目
|
|
double m_nStepHeight, m_nStepWidth; //踏步高和踏步宽
|
|
|
|
double GetOffsetDist(int idx) const;
|
|
BOOL Offset(const XPoly2D &src, XPoly2D &dest) const;
|
|
|
|
public:
|
|
TDbStep();
|
|
~TDbStep();
|
|
virtual BOOL IsValid() const;
|
|
virtual bool IsModelEntity() const{return true;}
|
|
virtual bool IsMeClip()const{return true;}//可能裁剪散水
|
|
virtual bool IsClipMe(const TEntityBase* pEnt=NULL)const;
|
|
virtual Acad::ErrorStatus GetClipBoundary(XPoly2D &poly)const;
|
|
virtual void CopyPropertiesFrom(AcDbEntity *pSrcEntity, unsigned gMatchFlag);
|
|
virtual Acad::ErrorStatus SetPathPoly(const XPoly2D &polyPath,const AcGeVector3d&normal);
|
|
virtual Acad::ErrorStatus GetPathPoly(XPoly2D &polyPath,AcGeVector3d&normal)const;
|
|
|
|
// Overriden function from AcDbEntity
|
|
virtual Acad::ErrorStatus audit(AcDbAuditInfo* pAuditInfo);
|
|
virtual Acad::ErrorStatus subGetClassID(CLSID* pClsid) const;
|
|
virtual Acad::ErrorStatus dwgInFields (AcDbDwgFiler*);
|
|
virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler*) const;
|
|
virtual Acad::ErrorStatus dxfInFields (AcDbDxfFiler*);
|
|
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);
|
|
|
|
|
|
|
|
// drived from TDbEntity
|
|
virtual Acad::ErrorStatus ExplodeOrDraw3d(XExplodeDraw &dc) const;
|
|
virtual Acad::ErrorStatus ExplodeOrDraw2d(XExplodeDraw &dc) const;
|
|
virtual void GetTips(DList<TObjInfoUnit> &) const; //取动态属性显示数据
|
|
virtual Acad::ErrorStatus GetGripText(int i, CString &cs) const;
|
|
virtual const TCHAR *GetDefaultLayer() const;
|
|
virtual Acad::ErrorStatus GetExtents2d(XPoint &ptLow, XPoint &ptUp) const;
|
|
virtual Acad::ErrorStatus GetExtents(XPoint &ptLow, XPoint &ptUp) const;
|
|
#if ADS>15
|
|
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
|
|
// 0--没有命中; 1--任意穿越; 2--任意包含; 3--重边穿越; 4--重边包含
|
|
// segHit--重边穿越或包含时的纠正位置
|
|
virtual int HitTest(const XCurveSegment &seg, double nTol, XCurveSegment &segHit) const;
|
|
Acad::ErrorStatus GetOutline2d(XPoly2D &poly2d) const;
|
|
|
|
// sg add 101129,支持导出XML
|
|
virtual CString GetXml(const AcGeMatrix3d& mat) const;
|
|
|
|
int GetEdgeNum() const;
|
|
BOOL HasStepAt(int idx) const;
|
|
double GetStepHeight() const;
|
|
double GetStepWidth() const;
|
|
double GetElevation() const;
|
|
double GetTotalHeight() const;
|
|
int GetStepNum() const;
|
|
const XPoly2D & GetStepOutline() const;
|
|
void SetStepNum(int nNum);
|
|
void SetStepHeight(double h);
|
|
void SetStepWidth(double w);
|
|
void SetPolyOutline(const XPoly2D &poly);
|
|
void SetStepAt(int idx, BOOL bHasStep);
|
|
void SetElevation(double elev);
|
|
};
|
|
|
|
TARCH_IMPEXP int EditStep0(AcDbObjectId id);
|
|
#endif |