-// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2022 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
#include "SMESH_Algo.hxx"
#include "Utils_SALOME_Exception.hxx"
+#include <vector>
+#include <tuple>
+
class StdMeshers_ViscousLayers;
class StdMeshers_MaxElementVolume;
class NETGENPlugin_Hypothesis;
+class NETGENPlugin_NetgenLibWrapper;
+class netgen_params;
+class SMDS_MeshNode;
class NETGENPLUGIN_EXPORT NETGENPlugin_NETGEN_3D: public SMESH_3D_Algo
{
public:
- NETGENPlugin_NETGEN_3D(int hypId, int studyId, SMESH_Gen* gen);
+ NETGENPlugin_NETGEN_3D(int hypId, SMESH_Gen* gen);
virtual ~NETGENPlugin_NETGEN_3D();
virtual bool CheckHypothesis(SMESH_Mesh& aMesh,
const TopoDS_Shape& aShape,
MapShapeNbElems& aResMap);
+ bool computeFillNgMesh(
+ SMESH_Mesh& aMesh,
+ const TopoDS_Shape& aShape,
+ std::vector< const SMDS_MeshNode* > &nodeVec,
+ NETGENPlugin_NetgenLibWrapper &ngLib,
+ SMESH_MesherHelper &helper,
+ int &Netgen_NbOfNodes);
+
+ bool computePrepareParam(
+ SMESH_Mesh& aMesh,
+ NETGENPlugin_NetgenLibWrapper &ngLib,
+ netgen::OCCGeometry &occgeo,
+ SMESH_MesherHelper &helper,
+ int &endWith);
+
+ bool computeRunMesher(
+ netgen::OCCGeometry &occgeo,
+ std::vector< const SMDS_MeshNode* > &nodeVec,
+ netgen::Mesh* ngMesh,
+ NETGENPlugin_NetgenLibWrapper &ngLib,
+ int &startWith, int &endWith);
+
+ bool computeFillMesh(
+ std::vector< const SMDS_MeshNode* > &nodeVec,
+ NETGENPlugin_NetgenLibWrapper &ngLib,
+ SMESH_MesherHelper &helper,
+ int &Netgen_NbOfNodes);
+
protected:
+ virtual bool getSurfaceElements(
+ SMESH_Mesh& aMesh,
+ const TopoDS_Shape& aShape,
+ SMESH_ProxyMesh::Ptr proxyMesh,
+ NETGENPlugin_Internals &internals,
+ SMESH_MesherHelper &helper,
+ std::map<const SMDS_MeshElement*, std::tuple<bool, bool>>& listElements);
+
bool compute(SMESH_Mesh& mesh,
SMESH_MesherHelper& helper,
std::vector< const SMDS_MeshNode* >& nodeVec,
- nglib::Ng_Mesh* ngMesh);
+ NETGENPlugin_NetgenLibWrapper& ngLib);
double _maxElementVolume;