283 lines
9.0 KiB
C++
283 lines
9.0 KiB
C++
#if !defined(ARX__TDBINTERFACESOBJ_H__20080829_134414)
|
|
#define ARX__TDBINTERFACESOBJ_H__20080829_134414
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
#include "TDbExtentsEdge.h"
|
|
#include "TInterface.h"
|
|
#include "TInterfaceModifyMsg.h"
|
|
#include "TXShell.h"
|
|
|
|
#pragma warning(disable: 4275 4251)
|
|
|
|
#ifdef _TCHPIPEBASE_
|
|
#define DLLIMPEXP __declspec(dllexport)
|
|
#else
|
|
#ifdef _TCHPIPEBASE_COM_
|
|
#define DLLIMPEXP
|
|
#else
|
|
#define DLLIMPEXP __declspec(dllimport)
|
|
#endif
|
|
#endif
|
|
|
|
#ifndef TCHPIPEBASE_DBXSERVICE
|
|
#define TCHPIPEBASE_DBXSERVICE "TCHPIPEBASE_DBXSERVICE"
|
|
#endif
|
|
|
|
class TDbXDataMap;
|
|
class DLLIMPEXP TDbInterfacesObj : public TDbCurveEntity
|
|
{
|
|
public:
|
|
DECLARE_TENTBASE();
|
|
ACRX_DECLARE_MEMBERS(TDbInterfacesObj);
|
|
|
|
TDbInterfacesObj();
|
|
virtual ~TDbInterfacesObj();
|
|
|
|
public:
|
|
|
|
// 接口描述对象
|
|
virtual BOOL GetInterface(int nIndex,TInterface& pipeInterface) const;
|
|
virtual BOOL GetInterface(const AcGePoint3d& ptCon,TInterface& pipeInterface) const;
|
|
|
|
virtual BOOL HasInterface(const AcGePoint3d& ptCon,const AcGeVector3d& vtDir);
|
|
virtual int GetInterfaceCount() const;
|
|
|
|
// 建立接口关联关系
|
|
virtual BOOL SetInterfaceRelation(const AcGePoint3d& ptConnect,const AcDbObjectId& idConnect);
|
|
|
|
// 在特定位置建立重合接口关系
|
|
virtual BOOL SetInterfaceRelation(const AcGePoint3d& ptConnect,const AcDbObjectId& idConnect1,const AcDbObjectId& idConnect2);
|
|
|
|
// 移除接口关联关系
|
|
virtual BOOL RemoveInterfaceRelation(const AcGePoint3d& ptConnect,const AcDbObjectId& idConnect);
|
|
|
|
// 接口更改通知
|
|
virtual BOOL NotifyInterfaceToModify(const TInterfaceModifyMsg& iModiMsg,TInterfaceModifyMsgs& iModiMsgs);
|
|
|
|
// // 专业数据[可读写]
|
|
// virtual TDbXDataMap* GetSpecialtyData();
|
|
//
|
|
// // 读的方式获取专业数据
|
|
// virtual TDbXDataMap* GetSpecialtyDataReadOnly() const;
|
|
|
|
// 统一法向量
|
|
virtual Acad::ErrorStatus setNormal(const AcGeVector3d& vtNorm);
|
|
virtual AcGeVector3d normal() const;
|
|
|
|
// 获取2维显示的所有曲线
|
|
virtual BOOL MakeCurves(TComplexCurve& cplCurve) const;
|
|
|
|
// 获取2维边界内显示的曲线
|
|
virtual BOOL GetCurvesInSide(TComplexCurve& compCurve) const;
|
|
|
|
// 获取2维显示的边界pl线
|
|
virtual AcDbPolyline* MakePolyCurve() const;
|
|
|
|
// 获取2维边界围城的面
|
|
virtual BOOL MakePolyCurveFaces(AcDbVoidPtrArray& arFaces);
|
|
|
|
// 获取对象类型名称 [es. 弯头--> TCH_EELBOW]
|
|
virtual void GetKindName(CString& sName);
|
|
|
|
// 添加自身被遮挡的高标高边界对象
|
|
virtual BOOL AddCoverEdge(AcDbObjectId& id,TComplexCurve& curEdge);
|
|
|
|
// 移除自身被遮挡的高标高边界对象
|
|
virtual BOOL RemoveCoverEdge(AcDbObjectId& id);
|
|
|
|
// 获取自身被遮挡的高标高对象
|
|
virtual BOOL GetCoverEdgeIds(AcDbObjectIdArray& arIds);
|
|
|
|
// 添加被自身遮挡的低标高对象
|
|
virtual BOOL AddIdsCoverByMe(AcDbObjectId& id);
|
|
|
|
// 取出被自身遮挡的低标高对象
|
|
virtual BOOL GetIdsCoverByMe(AcDbObjectIdArray& arByMeIds);
|
|
|
|
// 获取自身边界
|
|
virtual BOOL GetGeomExtentsEdge(TComplexCurve& crLoop);
|
|
|
|
// 设置虚线图层
|
|
virtual void SetDashLayer(AcDbObjectId idDash);
|
|
virtual AcDbObjectId DashLayer() const;
|
|
|
|
// 设置中心线图层
|
|
virtual void SetCenterLayer(AcDbObjectId idCen);
|
|
virtual AcDbObjectId CenterLayer() const;
|
|
|
|
// 更新传入对象的接口信息和关系
|
|
static BOOL UpdateRecInterface(const AcDbObjectIdArray& arids);
|
|
// 查询记录中接口信息
|
|
virtual BOOL FindInterfaceRec(const AcGePoint3d& ptConnect, TInterface& pipeInterface);
|
|
|
|
// 更新接口记录数据
|
|
virtual BOOL UpdateInterfaceRec(const AcGeMatrix3d& xform,AcGePoint3d* ppOld = NULL);
|
|
|
|
// 更新接口记录位置点
|
|
virtual BOOL UpdateInterfaceRec(const AcGePoint3d& ptGeOld,const AcGePoint3d& ptGeNew);
|
|
|
|
// 更新接口记录方向
|
|
virtual BOOL UpdateInterfaceRec(const AcGePoint3d& ptGeOld,const AcGeVector3d& vtDirNew);
|
|
|
|
// 更新遮挡显示
|
|
virtual BOOL UpdateCoverDisplay();
|
|
// 立即更新遮挡
|
|
virtual BOOL FlashCoverDisplay();
|
|
|
|
// 获取特定中点位置
|
|
virtual double GetElevation();
|
|
|
|
// // 数据存取
|
|
// virtual BOOL SetAt(LPCTSTR pszKey,TXData& XData);
|
|
//
|
|
// virtual BOOL GetAt(LPCTSTR pszKey,TXData& XData);
|
|
|
|
// 更新法向量
|
|
virtual void UpdateNormal(const AcGePoint3d& ptOld,const AcGePoint3d& ptNew);
|
|
|
|
// 解释夹点
|
|
virtual TDb::Position ExplainGripIndex(int nIndex) const;
|
|
|
|
// 夹点提示
|
|
virtual Acad::ErrorStatus GetGripText(int i, CString &cs) const;
|
|
|
|
// 版本
|
|
virtual int GetFirstVersion()const;
|
|
|
|
// 对象查询
|
|
virtual void GetTips(DList<TObjInfoUnit> &lstInfo) const;
|
|
virtual void GetTips(CMapStringToString& mapLable2Tip) const;
|
|
|
|
//获取出图比例
|
|
virtual double GetPrintScale() const;
|
|
|
|
//设置出图比例
|
|
virtual void SetPrintScale(double scale);
|
|
|
|
//布局转角
|
|
virtual double GetLayoutRotationAngle() const;
|
|
|
|
//布局转角
|
|
virtual void SetLayoutRotationAngle(double dRot);
|
|
|
|
//子类对象格式刷支持 属性从
|
|
virtual void CopyPropertiesFrom(AcDbEntity *pSrc,unsigned gMatchFlag);
|
|
|
|
//子类对象格式刷支持 属性到
|
|
virtual void CopyPropertiesTo(AcDbObjectId& idTgr,unsigned gMatchFlag);
|
|
|
|
//子类对象格式刷支持 属性到
|
|
virtual void CopyPropertiesTo(AcDbObjectIdArray& arIds,unsigned gMatchFlag);
|
|
|
|
// 根据参数名称获得实体的OPM信息,pszName:参数名称(XMap key值)
|
|
virtual BOOL OPMInfo(LPCTSTR pszName, TDb::OPMInfo* pInfo);
|
|
|
|
// 判断当前实体参数是否有效,并将有效的参数数据返回到map中
|
|
virtual BOOL IsValid(TDbXDataMap* pXMap = NULL);
|
|
|
|
// 标注修改
|
|
virtual void SetSubText(long i,CString sText);
|
|
|
|
// 用户自定义接口
|
|
virtual LRESULT UserCall(long i,LPVOID pData);
|
|
|
|
//获取三维的壳对象
|
|
virtual int GetXBaseShell(TXShell& xShell);
|
|
|
|
//获取体的范围方块
|
|
virtual int GetBodyBox(AcDbExtents& ext);
|
|
|
|
public:
|
|
//{{AFX_ARX_METHODS(TDbInterfacesObj)
|
|
virtual Acad::ErrorStatus subDeepClone(AcDbObject* pOwnerObject,
|
|
AcDbObject*& pClonedObject,
|
|
AcDbIdMapping& idMap,
|
|
Adesk::Boolean isPrimary = true) const;
|
|
|
|
virtual Acad::ErrorStatus subWblockClone( AcRxObject* pOwnerObject,
|
|
AcDbObject*& pClonedObject,
|
|
AcDbIdMapping& idMap,
|
|
Adesk::Boolean isPrimary = true) const;
|
|
|
|
virtual void subList() const;
|
|
virtual Acad::ErrorStatus dxfOutFields(AcDbDxfFiler* pFiler) const;
|
|
virtual Acad::ErrorStatus dxfInFields(AcDbDxfFiler* pFiler);
|
|
virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler* pFiler) const;
|
|
virtual Acad::ErrorStatus dwgInFields(AcDbDwgFiler* pFiler);
|
|
virtual Acad::ErrorStatus copyFrom(const AcRxObject* pSrc);
|
|
virtual Acad::ErrorStatus setLayer( const TCHAR* newVal,
|
|
Adesk::Boolean doSubents = true);
|
|
virtual Acad::ErrorStatus setLayer( AcDbObjectId newVal,
|
|
Adesk::Boolean doSubents = true);
|
|
virtual Acad::ErrorStatus getArea(double& x0) const;
|
|
|
|
virtual Acad::ErrorStatus getStartPoint(AcGePoint3d& x0) const;
|
|
virtual Acad::ErrorStatus getStartParam(double& x0) const;
|
|
virtual Acad::ErrorStatus getSplitCurves(const AcGePoint3dArray& points,
|
|
AcDbVoidPtrArray& curveSegments) const;
|
|
virtual Acad::ErrorStatus getSplitCurves(const AcGeDoubleArray& params,
|
|
AcDbVoidPtrArray& curveSegments) const;
|
|
virtual Acad::ErrorStatus getPointAtParam(double x0,
|
|
AcGePoint3d& x1) const;
|
|
virtual Acad::ErrorStatus getPointAtDist(double x0,
|
|
AcGePoint3d& x1) const;
|
|
virtual Acad::ErrorStatus getParamAtPoint(const AcGePoint3d& x0,
|
|
double& x1)const;
|
|
virtual Acad::ErrorStatus getParamAtDist(double dist,
|
|
double& param) const;
|
|
|
|
virtual Acad::ErrorStatus getOffsetCurves(double offsetDist,
|
|
AcDbVoidPtrArray& offsetCurves) const;
|
|
virtual Acad::ErrorStatus getFirstDeriv(double param,
|
|
AcGeVector3d& firstDeriv) const;
|
|
virtual Acad::ErrorStatus getFirstDeriv(const AcGePoint3d& x0,
|
|
AcGeVector3d& firstDeriv) const;
|
|
virtual Acad::ErrorStatus getEndPoint(AcGePoint3d& x0) const;
|
|
virtual Acad::ErrorStatus getEndParam(double& x0) const;
|
|
virtual Acad::ErrorStatus getDistAtPoint(const AcGePoint3d& x0,
|
|
double& x1)const;
|
|
virtual Acad::ErrorStatus getDistAtParam(double param,
|
|
double& dist) const;
|
|
virtual Acad::ErrorStatus getClosestPointTo(const AcGePoint3d& givenPnt,
|
|
const AcGeVector3d& direction,
|
|
AcGePoint3d& pointOnCurve,
|
|
Adesk::Boolean extend = Adesk::kFalse) const;
|
|
virtual Acad::ErrorStatus getClosestPointTo(const AcGePoint3d& givenPnt,
|
|
AcGePoint3d& pointOnCurve,
|
|
Adesk::Boolean extend = Adesk::kFalse) const;
|
|
virtual Acad::ErrorStatus extend(double newParam);
|
|
virtual Acad::ErrorStatus extend(Adesk::Boolean extendStart,
|
|
const AcGePoint3d& toPoint);
|
|
|
|
virtual Acad::ErrorStatus subErase(Adesk::Boolean erasing);
|
|
|
|
virtual Acad::ErrorStatus getPlane(AcGePlane& plan,AcDb::Planarity& planvt) const;
|
|
|
|
virtual Acad::ErrorStatus applyPartialUndo(AcDbDwgFiler* undoFiler,AcRxClass* classObj);
|
|
|
|
//}}AFX_ARX_METHODS
|
|
|
|
//{{AFX_ARX_DATA_ACCESS(TDbInterfacesObj)
|
|
//}}AFX_ARX_DATA_ACCESS
|
|
|
|
private:
|
|
//{{AFX_ARX_DATA(TDbInterfacesObj)
|
|
//}}AFX_ARX_DATA
|
|
AcDbHardPointerId m_idDash;
|
|
AcDbHardPointerId m_idCenter;
|
|
};
|
|
|
|
//设置专业夹点命令
|
|
DLLIMPEXP void SetGlobalContext(LPCTSTR pszKey,LPCTSTR pszCmd);
|
|
DLLIMPEXP BOOL GetGlobalContext(LPCTSTR pszKey,CString& sCmd);
|
|
DLLIMPEXP void SetGlobalContext(LPCTSTR pszKey,int nVal);
|
|
DLLIMPEXP BOOL GetGlobalContext(LPCTSTR pszKey,int& nVal);
|
|
DLLIMPEXP TDbXDataMap* GetGlobalContext();
|
|
DLLIMPEXP double _ttof(LPCTSTR pszString);
|
|
DLLIMPEXP void PipeBaseCommandEndedUser(const CString& sCmd = _T("UNDO"));//add liaoy 170704外部需更新接口时调用
|
|
|
|
|
|
#endif // !defined(ARX__TDBINTERFACESOBJ_H__20080829_134414)
|