Files
envi-code/SourceCode/Code2026/inc/BrepOper.h
T
2026-09-28 15:28:50 +08:00

60 lines
1.6 KiB
C++

#pragma once
#ifdef EARTHWORM_EXPORT
#define DLLIMPEXP __declspec(dllexport)
#else
#define DLLIMPEXP __declspec(dllimport)
#endif
#include <brface.h>
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<AcDbSubentId> &subs
, AcArray<AcGePlane> &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);
};