#pragma once #ifdef EARTHWORM_EXPORT #define DLLIMPEXP __declspec(dllexport) #else #define DLLIMPEXP __declspec(dllimport) #endif #include class DLLIMPEXP BrepOper { public: static void setUCS(AcGePlane &plan, bool bPlan = true); static bool setUCSByFace(AcBrFace *pFace, bool bPlan = false); static bool setUCSBySubentPath(AcDbFullSubentPath &path, bool bPlan = false); static bool setUcsByPickFace(AcDbObjectId &id , const AcGePoint3d &pickPnt, AcDbVoidPtrArray *pAr = NULL); static AcDb3dSolid* get3DSolidBySH(AcDbObjectId &idSH); static void getSubPathBySolid(AcDbObjectId &id , AcArray &subs , AcArray &plans); static void copyEdgeByFace(AcDbObjectId &id, const AcGePoint3d &pickPnt, AcDbCurve *&pEdge); static bool getPlaneByBrepFace(const AcBrFace *pFace, AcGePlane &plan); static bool selectSubentPaths(LPCTSTR filter , ads_point adsPt , const AcDb::SubentType &subType , AcDbFullSubentPathArray &paths); static bool getProfileByPickFace(AcDbObjectId &id , const AcGePoint3d &pickPnt , AcDbVoidPtrArray &ptrs); static bool getProfileByPickFace2(AcDbObjectId &idSH , const AcGePoint3d &pickPnt , AcDbVoidPtrArray &ptrsOut , AcDbVoidPtrArray &ptrsIn); static bool getProfileByPickFace3(AcDbObjectId &idSH , const AcGePoint3d &pickPnt , AcDbVoidPtrArray &ptrsOut , AcDbVoidPtrArray &ptrsIn , void*&pFaceSolid); static AcDbSubentId Acad2Zcad(const AcDbSubentId &idCad); static void test(); static void get3DSolidToPolyMesh(); static bool PolyhedronGeometry(AcDb3dSolid *p3d, CString &sVertices, CString &sIndices); };