#ifndef __DB_POLYPATHARRAY_H #define __DB_POLYPATHARRAY_H //#include "DbPolyCurveEnt.h" #define RF_EQUALSCALE 0x01//使用Y向比例 #define RF_AUTOEXPAND 0x02//等比时有效 #define RF_RIGHTBASE 0x04 #define RF_MIDBASE 0x08 #define RF_REVERSE 0x10 //路径排列(线图案) class TARCH_EXP TDbPolyPathArray: public TDbPolyCurveEnt { DECLARE_TENTBASE(); ACRX_DECLARE_MEMBERS(TDbPolyPathArray); private: const static Adesk::UInt8 g_nVersion; protected: AcDbHardPointerId m_idUnit; //自定义扶手 double m_nUnitHeight;//单元高 double m_nRatio;//填充比例 Adesk::UInt8 m_nRailFlag; //单元对齐方式 public: TDbPolyPathArray(); virtual BOOL IsValid() const; virtual bool IsModelEntity() const{return true;} virtual void CopyPropertiesFrom(AcDbEntity *pSrcEntity, unsigned gMatchFlag); virtual int GetFirstVersion()const{return 7;}//ok // 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 subTransformBy(const AcGeMatrix3d&mat);//ok virtual Acad::ErrorStatus subGetOsnapPoints( AcDb::OsnapMode osnapMode, INT_PTR gsSelectionMark, const AcGePoint3d& pickPoint, const AcGePoint3d& lastPoint, const AcGeMatrix3d& viewXform, AcGePoint3dArray& snapPoints, AcDbIntArray& geomIds) 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 AcGeMatrix3d& insertionMat) const; // drived from TDbEntity virtual DrawType GetDrawType() const; virtual const TCHAR *GetDefaultLayer() const; virtual Acad::ErrorStatus ExplodeOrDraw2d(XExplodeDraw &dc) const; virtual void GetTips(DList &) const; //取动态属性显示数据 double GetUnitWidth() const; double GetUnitHeight()const; double GetRatio()const; double GetScaleY()const; BOOL IsAutoExpand() const; BOOL IsEqualScale()const; BOOL IsReversed()const; int GetBaseType()const; AcDbObjectId GetUnitId() const; void SetBaseType(int type=0);//0,左,1,右,2,中 void SetUnitHeight(double h); void SetRatio(double r); void SetUnitId(AcDbObjectId id); void SetAutoExpand(BOOL bTrue); void SetEqualScale(BOOL bTrue); void Reverse(); }; #endif