#ifndef __DBFITTING_H #define __DBFITTING_H /*============================================================================* * Copyright(c), 1994-2007, Beijing Tangent Engineering Software Co.Ltd. * 作 者: 沈睿 * 创建时间: 张金乾2003年夏季提供框架 * 描 述: 水管自动连接件:三通、弯头、四通、堵头、等等 * 归属项目: 给排水 暖通 * 历史记录: 2008-6-26 补头文件注释 =============================================================================*/ #include "PipePrototype.h" // 自动连接件:三通、弯头、四通、堵头、等等 class PS_EXP TDbPipeFitting: public TDbPipeNode { DECLARE_TENTBASE(); ACRX_DECLARE_MEMBERS(TDbPipeFitting); private: static const Adesk::UInt8 g_nVersion; public: TDbPipeFitting(); protected: XPoint m_ptLocation; public: void SetLocation(const XPoint &ptLoc) { assertWriteEnabled(); m_ptLocation=ptLoc; } public: // Override TDbPipeNode virtual XPoint GetLocation() const; // 对st类型的接口进行重新连接 virtual void UpdateLinkage(const XPoint &ptAt, TPipeSys::SysType st, const DList &idPipes); public: // Override TDbEntity virtual void CopyPropertiesFrom(AcDbEntity *pSrc, unsigned gMatchFlag); virtual Acad::ErrorStatus subGetClassID(CLSID* pClsid) const; virtual Acad::ErrorStatus ExplodeOrDraw2d(XExplodeDraw &dc) const; virtual Acad::ErrorStatus ExplodeOrDraw3d(XExplodeDraw &dc) const; virtual Acad::ErrorStatus Draw3dElbow(XExplodeDraw &dc) const; virtual Acad::ErrorStatus Draw3dElbow2(XExplodeDraw &dc) const; // cet 2011.5.27 add 绘制两管平行时的情况 virtual Acad::ErrorStatus Draw3dOther(XExplodeDraw &dc) const; virtual void GetTips(DList &) const; //取动态属性显示数据 virtual Acad::ErrorStatus GetGripText(int idx, CString &cs) const; virtual CString GetXml(const AcGeMatrix3d& mat) const; // cet 2011.2.11 add public: // Override AcDbEntity Acad::ErrorStatus subGetOsnapPoints(AcDb::OsnapMode osnapMode, INT_PTR gsSelectionMark, const AcGePoint3d& ptPick, const AcGePoint3d& lastPoint, const AcGeMatrix3d& viewXform, AcGePoint3dArray& snapPoints, AcDbIntArray& geomIds) 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 subMoveGripPointsAt(const AcDbIntArray& indices, const AcGeVector3d& offset); virtual Acad::ErrorStatus subMoveStretchPointsAt(const AcDbIntArray& indices, const AcGeVector3d& offset); virtual Acad::ErrorStatus subTransformBy(const AcGeMatrix3d& xform); virtual Acad::ErrorStatus GetExtents(XPoint &ptLow, XPoint &ptUp) const; private: Acad::ErrorStatus GetGSPoints(AcGePoint3dArray &stretchPoints) const; Acad::ErrorStatus MoveGSPointsAt(const AcDbIntArray& indices,const AcGeVector3d& offset); BOOL GetPointAtDist(AcDbCurve *pCurve, double dDist, XPoint &ptGet) const; // cet 2016.8.17 add 判断fitting连接的是不是方沟 bool IsLinkedPipeCanal() const; }; #endif