#ifndef _TEIMPBRACKET_H__ #define _TEIMPBRACKET_H__ #if _MSC_VER > 1000 #pragma once #endif #include "TImpSpecEquipment.h" class TEImpBracket : public TImpSpecEquipment { public: TEImpBracket(); virtual ~TEImpBracket(); public: Acad::ErrorStatus getClassID(CLSID* pClsid) const; virtual void GetKindName(CString& sName); // 夹点提示 virtual Acad::ErrorStatus GetGripText(int i, CString &cs) const; public: //{{AFX_ARX_METHODS(TImpSpecEquipment) virtual Acad::ErrorStatus explode(AcDbVoidPtrArray& entitySet) const; virtual Acad::ErrorStatus ExplodeOrDraw2d(XExplodeDraw &mode) const; virtual Acad::ErrorStatus ExplodeOrDraw3d(XExplodeDraw &mode) const; virtual Acad::ErrorStatus transformBy(const AcGeMatrix3d& xform); virtual Acad::ErrorStatus moveGripPointsAt(const AcDbIntArray& indices, const AcGeVector3d& offset); virtual Acad::ErrorStatus moveStretchPointsAt(const AcDbIntArray& indices, const AcGeVector3d& offset); virtual Acad::ErrorStatus getStretchPoints(AcGePoint3dArray& stretchPoints) const; virtual Acad::ErrorStatus getOsnapPoints(AcDb::OsnapMode osnapMode, INT_PTR gsSelectionMark, const AcGePoint3d& pickPoint, const AcGePoint3d& lastPoint, const AcGeMatrix3d& viewXform, AcGePoint3dArray& snapPoints, AcDbIntArray& geomIds) const; virtual Acad::ErrorStatus getGripPoints(AcGePoint3dArray& gripPoints, AcDbIntArray& osnapModes, AcDbIntArray& geomIds) const; //virtual Acad::ErrorStatus explode(AcDbVoidPtrArray& entitySet) const; virtual void list() const; //virtual CString GetXml() const; // 2012/9/26 comment by wzh virtual CString GetXml(const AcGeMatrix3d& mat) const; // 2012/9/26 add by wzh // add by 2011.02.21 剖切功能 注意 GetSection内不应将std::vector参数清空 virtual bool GetSection(const AcDbFace &face, const AcGeVector3d &vtPlaneSecDir, std::vector §ionRecord, AcDbVoidPtrArray& arFillPtrs) const; // 剖切用,返回Z坐标最高、最低点 virtual Acad::ErrorStatus GetExtents(TADSGePoint3d &ptLow, TADSGePoint3d &ptUp) const; //}}AFX_ARX_METHODS private: BOOL GetNearestPoint(const AcGePoint3d& pickPoint,AcGePoint3d& ptNear) const; BOOL GetCurves(TComplexCurve& cplCurve) const; Acad::ErrorStatus ExplodeOrDrawBracket3d(XExplodeDraw &mode) const; Acad::ErrorStatus ExplodeOrDrawSupport3d(XExplodeDraw &mode) const; //双排吊架 bsl add 2011.11.9 Acad::ErrorStatus ExplodeOrDrawDRowBracket3d(XExplodeDraw& mode) const; Acad::ErrorStatus ExplodeOrDrawDRowBracket2d(XExplodeDraw &mode) const; //绘制2维立柱 指定类型 Acad::ErrorStatus ExplodeOrDraw2dPillar(XExplodeDraw &mode,AcGePoint3d ptS,AcGeVector3d vtDir,int nStyle) const; //绘制3维立柱 指定类型 Acad::ErrorStatus ExplodeOrDraw3dPillar(XExplodeDraw &mode,AcGePoint3d ptS,AcGePoint3d ptE,AcGeVector3d vtNormal,int nStyle) const; //绘制2维托臂 指定起点,法向量,方向向量,长度 Acad::ErrorStatus ExplodeOrDraw2dSupport(XExplodeDraw &mode,AcGePoint3d ptS,AcGePoint3d ptE,AcGeVector3d vtNormal) const; //绘制3维托臂 指定起点,法向量,方向向量,长度 Acad::ErrorStatus ExplodeOrDraw3dSupport(XExplodeDraw &mode,AcGePoint3d ptS,AcGeVector3d vtNormal,AcGeVector3d vtDir,double dLen) const; //绘制2维底座 指定插入点 旋转角度 图块id Acad::ErrorStatus ExplodeOrDraw2dPedestal(XExplodeDraw &mode,AcGePoint3d ptIns,AcDbObjectId BlockId,double dAngle = 0.0) const; //绘制3维底座 指定插入点 旋转角度 图块id Acad::ErrorStatus ExplodeOrDraw3dPedestal(XExplodeDraw &mode,AcGePoint3d ptIns,AcGeVector3d vtNormal) const; }; #endif // !defined(_TEIMPBRACKET_H__)