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

69 lines
3.5 KiB
C++

#pragma once
#include "TImpSpecFitting.h"
class THImpHvacBroSymbol :public TImpSpecFitting
{
public:
THImpHvacBroSymbol();
virtual ~THImpHvacBroSymbol();
protected:
//{{AFX_ARX_METHODS(THImpHvacElbow)
virtual BOOL IsValid(TDbXDataMap* pXMap);
virtual void GetKindName(CString& sName);
virtual int GetInterfaceCount() const;
virtual BOOL GetInterface(int nIndex,TInterface& pipeInterface) const;
virtual BOOL GetInterface(const AcGePoint3d& ptConnect,TInterface& pipeInterface) const;
virtual BOOL HasInterface(const AcGePoint3d& ptConnect,const AcGeVector3d& vtDir);
virtual BOOL SetInterfaceRelation(const AcGePoint3d& ptConnect,const AcDbObjectId& idConnect);
virtual BOOL RemoveInterfaceRelation(const AcGePoint3d& ptConnect,const AcDbObjectId& idConnect);
virtual BOOL NotifyInterfaceToModify(const TInterfaceModifyMsg& iModiMsg,TInterfaceModifyMsgs& iModiMsgs);
virtual Acad::ErrorStatus ExplodeOrDraw2d(XExplodeDraw &mode) const;
//virtual Acad::ErrorStatus ExplodeOrDraw3d(XExplodeDraw &mode) const;
//virtual AcDbPolyline* MakePolyCurve() const;
virtual BOOL MakeCurves(TComplexCurve& cplCurve) const;
//virtual BOOL GetCurvesInSide(TComplexCurve& compCurve) const;
//virtual BOOL MakePolyCurveFaces(AcDbVoidPtrArray& arFaces);
virtual Acad::ErrorStatus transformBy(const AcGeMatrix3d& xform);
virtual TDb::Position ExplainGripIndex(int nIndex) const;
virtual Acad::ErrorStatus getStretchPoints(AcGePoint3dArray& stretchPoints) const;
virtual Acad::ErrorStatus getGripPoints(AcGePoint3dArray& gripPoints, AcDbIntArray& osnapModes, AcDbIntArray& geomIds) 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 moveStretchPointsAt(const AcDbIntArray& indices, const AcGeVector3d& offset);
virtual Acad::ErrorStatus moveGripPointsAt(const AcDbIntArray& indices, const AcGeVector3d& offset);
virtual Acad::ErrorStatus getClassID(CLSID* pClsid) const;
virtual BOOL OPMInfo(LPCTSTR pszName, TDb::OPMInfo* pInfo);
virtual void GetTips(CMapStringToString& mapLable2Tip) const;
virtual void list() const;
//}}AFX_ARX_METHODS
// 处理实体删除后操作
virtual void OnSubErase(Adesk::Boolean erasing);
// 用户自定义调用, 用于复制法兰预览位移时,删除接口。区别仅位移情况 090916
virtual LRESULT UserCall(long i,LPVOID pData);
private:
// 得到边线宽
double GetEdgeLineWidth() const;
// 是否是单线变径
BOOL IsSingleLine() const;
BOOL GetInterfaceSizeData(int nIndex, TInterface& pipeInterface) const;
// 夹点移动消息处理
BOOL OnMoveGripPointMsgNotify(const TInterfaceModifyMsg& iModiMsg, TInterfaceModifyMsgs& iModiMsgs);
// 对象移动消息处理
BOOL OnTransformMsgNotify(const TInterfaceModifyMsg& iModiMsg, TInterfaceModifyMsgs& iModiMsgs);
// 尺寸调整消息处理
BOOL OnSizeMsgNotify(const TInterfaceModifyMsg& iModiMsg, TInterfaceModifyMsgs& iModiMsgs);
Acad::ErrorStatus OnCHorEqualRMoveGripPointsAt(const AcDbIntArray& indices, const AcGeVector3d& offset);
int AutoAppendPt(TComplexCurve &cplCurve, TCurveElement &cplEle,
AcGePoint3d &ptS, AcGePoint3d &ptMid, AcGePoint3d &ptE) const;
// 矩形内部二维轮廓
BOOL GetSectInsertPt(AcGePoint3dArray &arPts, AcDbPolyline &Poly) const;
// 圆形内部二维轮廓
BOOL GetCirInsertPt(AcGePoint3dArray &arPts) const;
// 绘制轮廓
BOOL MakeBroSymbol2D(TComplexCurve& cplCurve) const;
Acad::ErrorStatus MoveGripRandom(TDb::Position ePos, const AcGeVector3d& offset );
};