⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 brutilities.h

📁 能在MDT5/6环境下对已经存在地曲面进行全部和局部区域展开
💻 H
字号:
#ifndef BR_UTILITIES_H
#define BR_UTILITIES_H

//////////////////////////////////////////////////////////////////////////
//
// 与Brep, AcBr相关的函数
//
// Note:
//		
//////////////////////////////////////////////////////////////////////////


#include "TypeDef.h"

#ifdef _DBXEXP_
#define DLLIMPEXP __declspec(dllexport)
#else
#define DLLIMPEXP 
#endif


/*
 *	Purpose:
 *		get the subentPath from entity, 
 *		只对Region, solid 和body有效.
 *	Argument:
 *		pEnt		[in], 实体指针
 *		numIds		[out], 返回的subentPath个数
 *		subentIds	[out], 返回的subentPath指针数组
 *		subType		[in], 需要返回的subentPath类型
 *		marker		[in], Gs marker
 *		pickpnt		[in], pick point, 只对solid有用
 *		vxform		[in], view form, 只对solid有用
 *	Return:
 *		Returns eOk if success.
 */
extern DLLIMPEXP Acad::ErrorStatus 
getSubentPath (const AcDbEntity* pEnt,
			   int &numIds,
			   AcDbFullSubentPath*& subentIds,
			   AcDb::SubentType subType,
			   short marker=1,
			   const AcGePoint3d& pickpnt=AcGePoint3d::kOrigin,
			   const AcGeMatrix3d& vxform=AcGeMatrix3d::kIdentity);


/*
 *	Purpose:
 *		get NurbsCurve3d from BrEdge.
 *	Argument:
 *		pEdge	[in], 实体AcBrEdge指针
 *		Curve	[out], 得到的Curve
 *	Return:
 *		Returns eOk if success.
 */
extern DLLIMPEXP AcBr::ErrorStatus 
getNurbCurve3dFromBrEdge(AcBrEdge *pEdge,AcGeNurbCurve3d& Curve);


/*
 *	Purpose:
 *		从AcBrFace, 得到实体AcBrLoops.
 *	Argument:
 *		pFace	[in], 实体AcBrFace指针
 *		BrLoops	[out], 实体AcBrLoop数组
 *	Return:
 *		Returns eOk if success.
 */
extern DLLIMPEXP AcBr::ErrorStatus 
getBrLoopsFromBrFace(AcBrFace* pFace, AcBrLoopPointerArray& BrLoops);


/*
 *	Purpose:
 *		从AcBrLoop, 得到实体AcBrEdges.
 *	Argument:
 *		pLoop	[in], 实体AcBrLoop指针
 *		BrEdges	[out], 实体AcBrEdge数组
 *	Return:
 *		Returns eOk if success.
 */
extern DLLIMPEXP AcBr::ErrorStatus 
getBrEdgesFromBrLoop(AcBrLoop* pLoop, AcBrEdgePointerArray& BrEdges);


/*
 *	Purpose:
 *		get NurbsCurve3ds from BrEdges.
 *	Argument:
 *		Edges	[in], 实体AcBrEdgePointerArray
 *		Curves	[out], 得到的Curves
 *	Return:
 *		Returns eOk if success.
 */
extern DLLIMPEXP AcBr::ErrorStatus 
getNurbCurve3dsFromBrEdges(AcBrEdgePointerArray& Edges,
						   AcGeNurbCurve3dArray& Curves);


/*
 *	Purpose:
 *		get Points Array from AcBrEdges. 
 *		the length of points Array is equal to AcBrEdges.
 *	Argument:
 *		Edges	[in], 实体AcBrEdgePointerArray.
 *		Curves	[out], 得到的Curves points Array.
 *	Return:
 *		Returns eOk if success.
 */
extern DLLIMPEXP AcBr::ErrorStatus 
getPntsArrayFromBrEdges(AcBrEdgePointerArray& Edges,
						ChGePnts3dArray& Curves);


/*
 *	Purpose:
 *		get the AcGeLoop3d from AcBrLoop.
 *	Argument:
 *		pBrLoop	[in], AcBrLoop pointer.
 *		GeLoop	[out], AcGeLoop3d
 *	Return:
 *		Returns eOk if success.
 */
extern DLLIMPEXP AcBr::ErrorStatus 
getGeLoopFromBrLoop(AcBrLoop* pBrLoop, ChGeLoop3d& GeLoop);


/*
 *	Purpose:
 *		get the AcGeLoop3dArray from AcBrLoopPointerArray.
 *	Argument:
 *		BrLoops	[in], AcBrLoopPointerArray.
 *		GeLoops	[out], AcGeLoop3d array pointer.
 *	Return:
 *		Returns eOk if success.
 */
extern DLLIMPEXP AcBr::ErrorStatus 
getGeLoopsFromBrLoops(AcBrLoopPointerArray& BrLoops, 
					  ChGeLoop3dArray& GeLoops);


/*
 *	Purpose:
 *		从region对象获取AcBrFace对象,该对象必须存在于数据库中,
 *		可以没有owner. 成功时注意释放AcBrLoop对象内存空间. 
 *	Argument:
 *		pRg		[in], region对象指针.
 *		pBrFace	[out], 返回的AcBrLoop对象指针.
 *	Return:
 *		eOk, 成功
 *		其他,失败, loops长度为0
 */
extern DLLIMPEXP AcBr::ErrorStatus 
getBrFaceFromRegion(AcDbRegion *pRg, AcBrFace*& pBrFace);

/*
 *	Purpose:
 *		从region对象获取AcBrFace对象指针数组,该对象必须存在于数据库中,
 *		可以没有owner. 成功时注意释放AcBrLoop对象内存空间. 
 *	Argument:
 *		pRg			[in], region对象指针.
 *		pBrFaces	[out], 返回的AcBrLoop对象指针数组.
 *	Return:
 *		eOk, 成功
 *		其他,失败, loops长度为0
 */
extern DLLIMPEXP AcBr::ErrorStatus 
getBrFacesFromRegion(AcDbRegion *pRg, AcDbVoidPtrArray& pBrFaces);

/*
 *	Purpose:
 *		获取实体AcBrFace, 只对Region, solid 和body有效.
 *	Argument:
 *		pEnt		[in], 实体指针
 *		subType		[in], 需要返回的subentPath类型
 *		pBrEnt		[out], 返回的AcBrEntity
 *		marker		[in], Gs marker
 *		pickpnt		[in], pick point, 只对solid有用
 *		vxform		[in], view form, 只对solid有用
 *	Return:
 *		Returns eOk if success.
 */
extern DLLIMPEXP AcBr::ErrorStatus 
getBrEntityFromEnt (const AcDbEntity* pEnt,
					AcDb::SubentType subType,
					AcBrEntity*& pBrEnt,
					short marker=1,
					const AcGePoint3d& pickpnt=AcGePoint3d::kOrigin,
					const AcGeMatrix3d& vxform=AcGeMatrix3d::kIdentity);

#endif // BR_UTILITIES_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -