- UID
- 10108
- 积分
- 5956
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2002-9-17
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2014-7-12 08:25:55
|
显示全部楼层
#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 |
|