-// Copyright (C) 2007-2019 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2024 CEA, EDF, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
namespace netgen {
+ NETGENPLUGIN_DLL_HEADER
+ extern MeshingParameters mparam;
+
NETGENPLUGIN_DLL_HEADER
extern STLParameters stlparam;
namespace nglib
{
NETGENPLUGIN_DLL_HEADER
+#ifdef NETGEN_V6
+ extern netgen::NgArray<netgen::Point<3> > readedges;
+#else
extern netgen::Array<netgen::Point<3> > readedges;
+#endif
}
namespace
{
// define tolerance
double tol, len, sumLen = 0, minLen = 1e100;
- int nbSeg = 0;
+ size_t nbSeg = 0;
for ( size_t i = 0; i < holes.size(); ++i )
{
nbSeg += holes[i].size();
p1 = p2;
}
}
- double avgLen = sumLen / nbSeg;
+ double avgLen = sumLen / double( nbSeg );
if ( minLen > 1e-5 * avgLen )
tol = 0.1 * minLen; // minLen is not degenerate
else
gp_XYZ normal;
if ( SMESH_MeshAlgos::FaceNormal( f, normal ))
{
- TIDSortedElemSet allFaces;
- editor.Reorient2D( allFaces, normal, f );
+ TIDSortedElemSet allFaces, refFaces = { f };
+ editor.Reorient2D( allFaces, normal, refFaces, /*allowNonManifold=*/true );
break;
}
}
netgen::stlparam.resthchartdistenable = hyp->GetRestHChartDistEnable();
netgen::stlparam.resthlinelengthfac = hyp->GetRestHLineLengthFactor();
netgen::stlparam.resthlinelengthenable = hyp->GetRestHLineLengthEnable();
+#ifndef NETGEN_V6
netgen::stlparam.resthcloseedgefac = hyp->GetRestHCloseEdgeFactor();
netgen::stlparam.resthcloseedgeenable = hyp->GetRestHCloseEdgeEnable();
+#endif
netgen::stlparam.resthsurfcurvfac = hyp->GetRestHSurfCurvFactor();
netgen::stlparam.resthsurfcurvenable = hyp->GetRestHSurfCurvEnable();
netgen::stlparam.resthedgeanglefac = hyp->GetRestHEdgeAngleFactor();
netgen::STLGeometry* stlGeom = (netgen::STLGeometry*)ngStlGeo;
// the following code is taken from STLMeshing() method
+#ifdef NETGEN_V6
+ stlGeom->Clear();
+ stlGeom->BuildEdges( netgen::stlparam );
+ stlGeom->MakeAtlas( *ngMesh, netgen::mparam, netgen::stlparam );
+ stlGeom->CalcFaceNums();
+ stlGeom->AddFaceEdges();
+ fixNodes( fixedEdges->GetGroupDS(), stlGeom );
+ stlGeom->LinkEdges( netgen::stlparam );
+#else
stlGeom->Clear();
stlGeom->BuildEdges();
stlGeom->MakeAtlas( *ngMesh );
stlGeom->AddFaceEdges();
fixNodes( fixedEdges->GetGroupDS(), stlGeom );
stlGeom->LinkEdges();
-
+#endif
ngMesh->ClearFaceDescriptors();
for (int i = 1; i <= stlGeom->GetNOFaces(); i++)
ngMesh->AddFaceDescriptor (netgen::FaceDescriptor (i, 1, 0, 0));
}
else
{
- Ng_STL_MakeEdges( ngStlGeo, ngLib._ngMesh, &ngParams );
+ Ng_STL_MakeEdges( ngStlGeo, ngLib.ngMesh(), &ngParams );
}
netgen::mparam = savedParams;
netgen::OCCGeometry occgeo;
mesher.SetLocalSize( occgeo, *ngMesh );
- // const char* optStr = "SmSmSm";//"smsmsmSmSmSm";
- // netgen::mparam.optimize2d = optStr;
-
// meshing
try
{
- ng_res = Ng_STL_GenerateSurfaceMesh( ngStlGeo, ngLib._ngMesh, &ngParams );
+ ng_res = Ng_STL_GenerateSurfaceMesh( ngStlGeo, ngLib.ngMesh(), &ngParams );
}
catch (netgen::NgException & ex)
{
}
// find existing groups
- const char* theNamePrefix = "Surface_";
- const int theNamePrefixLen = strlen( theNamePrefix );
+ const char* theNamePrefix = "Surface_";
+ const size_t theNamePrefixLen = strlen( theNamePrefix );
std::vector< SMESHDS_Group* > groups;
if ( hyp && hyp->GetMakeGroupsOfSurfaces() )
{
*/
//=============================================================================
-bool NETGENPlugin_Remesher_2D::Compute(SMESH_Mesh& theMesh,
- const TopoDS_Shape& theShape)
+bool NETGENPlugin_Remesher_2D::Compute(SMESH_Mesh& /*theMesh*/,
+ const TopoDS_Shape& /*theShape*/)
{
return false;
}
*/
//=============================================================================
-bool NETGENPlugin_Remesher_2D::Evaluate(SMESH_Mesh& aMesh,
- const TopoDS_Shape& aShape,
- MapShapeNbElems& aResMap)
+bool NETGENPlugin_Remesher_2D::Evaluate(SMESH_Mesh& /*aMesh*/,
+ const TopoDS_Shape& /*aShape*/,
+ MapShapeNbElems& /*aResMap*/)
{
return false;
}