Files
envi-code/SourceCode/Code2026/tg_shs/shs_pipebase/TEImpBracket.h
T
2026-09-28 15:28:50 +08:00

89 lines
3.5 KiB
C++

#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<TObjSectionRecord>参数清空
virtual bool GetSection(const AcDbFace &face, const AcGeVector3d &vtPlaneSecDir,
std::vector<TObjSectionRecord> &sectionRecord, 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__)