#ifndef __DBASCENT_H #define __DBASCENT_H //#include "DbEntity.h" class TDbHandRail; #define AF_SLANT 0x01 //防滑条 #define AF_LEFT 0x02 //左平齐 #define AF_RIGHT 0x04 //右平齐 class TARCH_EXP TDbAscent: public TDbEntity { DECLARE_TENTBASE(); ACRX_DECLARE_MEMBERS(TDbAscent); private: const static Adesk::UInt8 g_nVersion; protected: double m_nLength, m_nWidth, m_nHeight, m_nIdent; XPoint m_ptLocation; double m_nRotation; //WCS下的转角 Adesk::UInt8 m_nFlag; TDbHandRail *m_pTempRail; public: TDbAscent(); ~TDbAscent(); virtual BOOL IsValid() const; virtual bool IsModelEntity() const{return true;} virtual bool IsMeClip()const{return true;}//可能裁剪散水 virtual Acad::ErrorStatus GetClipBoundary(XPoly2D &poly)const; virtual bool IsClipMe(const TEntityBase* pEnt=NULL)const; virtual void CopyPropertiesFrom(AcDbEntity *pSrcEntity, unsigned gMatchFlag); // Overriden function from AcDbEntity 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 &) 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; XPoint GetLowLeft2d() const; XPoint GetUpLeft2d() const; XPoint GetUpRight2d() const; XPoint GetLowRight2d() const; double GetElevation() const; double GetLength() const; double GetHeight() const; double GetWidth() const; double GetIdent() const; XPoint GetLocation() const; double GetRotation() const; BOOL HasSlant() const; BOOL IsAligned(int nSide) const; //是否平齐 void SetElevation(double elev); void SetLength(double l); void SetHeight(double h); void SetWidth(double w); void SetIdent(double i); void SetLocation(XPoint ptLoc); void SetRotation(double rot); void SetSlant(BOOL bTrue); void SetAlignment(int nSide, BOOL bTrue); void SetTempRail(TDbHandRail *pRail); }; TARCH_IMPEXP int EditAscent0(AcDbObjectId id); #endif