Salome HOME
updated copyright message
[plugins/netgenplugin.git] / src / NETGENPlugin / NETGENPlugin_Mesher.cxx
index 44535f283b569bf4d69d41ad4e76728a1aa43b88..331192c113482c600fb2dc31688659a3d2c374e0 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2022  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2023  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
@@ -76,6 +76,7 @@
 #include <TopoDS.hxx>
 #include <TopoDS_Compound.hxx>
 
+#include <Basics_OCCTVersion.hxx>
 // Netgen include files
 #ifndef OCCGEOMETRY
 #define OCCGEOMETRY
@@ -599,6 +600,8 @@ void NETGENPlugin_Mesher::SetDefaultParameters()
   _fineness               = NETGENPlugin_Hypothesis::GetDefaultFineness();
   mparams.uselocalh       = NETGENPlugin_Hypothesis::GetDefaultSurfaceCurvature();
   netgen::merge_solids    = NETGENPlugin_Hypothesis::GetDefaultFuseEdges();
+  // Unused argument but set 0 to initialise it
+  mparams.elementorder = 0;
 
 #ifdef NETGEN_V6
 
@@ -612,6 +615,7 @@ void NETGENPlugin_Mesher::SetDefaultParameters()
 #endif
 }
 
+
 //=============================================================================
 /*!
  * Pass parameters to NETGEN
@@ -873,12 +877,21 @@ void NETGENPlugin_Mesher::SetLocalSizeForChordalError( netgen::OCCGeometry& occg
       {
         Standard_Integer n1,n2,n3;
         triangulation->Triangles()(i).Get( n1,n2,n3 );
+#if OCC_VERSION_LARGE < 0x07060000
         p [0] = triangulation->Nodes()(n1).Transformed(loc).XYZ();
         p [1] = triangulation->Nodes()(n2).Transformed(loc).XYZ();
         p [2] = triangulation->Nodes()(n3).Transformed(loc).XYZ();
         uv[0] = triangulation->UVNodes()(n1).XY();
         uv[1] = triangulation->UVNodes()(n2).XY();
         uv[2] = triangulation->UVNodes()(n3).XY();
+#else
+        p[0] = triangulation->Node(n1).Transformed(loc).XYZ();
+        p[1] = triangulation->Node(n2).Transformed(loc).XYZ();
+        p[2] = triangulation->Node(n3).Transformed(loc).XYZ();
+        uv[0] = triangulation->UVNode(n1).XY();
+        uv[1] = triangulation->UVNode(n2).XY();
+        uv[2] = triangulation->UVNode(n3).XY();
+#endif
         surfProp.SetParameters( uv[0].X(), uv[0].Y() );
         if ( !surfProp.IsCurvatureDefined() )
           break;
@@ -1036,7 +1049,14 @@ double NETGENPlugin_Mesher::GetDefaultMinSize(const TopoDS_Shape& geom,
       BRep_Tool::Triangulation ( TopoDS::Face( fExp.Current() ), loc);
     if ( triangulation.IsNull() ) continue;
     const double fTol = BRep_Tool::Tolerance( TopoDS::Face( fExp.Current() ));
-    const TColgp_Array1OfPnt&   points = triangulation->Nodes();
+#if OCC_VERSION_HEX < 0x070600
+    const TColgp_Array1OfPnt& points = triangulation->Nodes();
+#else
+    auto points = [&triangulation](Standard_Integer index) {
+      return triangulation->Node(index);
+    };
+#endif
+
     const Poly_Array1OfTriangle& trias = triangulation->Triangles();
     for ( int iT = trias.Lower(); iT <= trias.Upper(); ++iT )
     {
@@ -4496,6 +4516,9 @@ int NETGENPlugin_NetgenLibWrapper::GenerateMesh( netgen::OCCGeometry& occgeo,
   if ( !ngMesh )
     ngMesh = new netgen::Mesh;
 
+  // To dump mparam
+  // netgen::mparam.Print(std::cerr);
+
 #ifdef NETGEN_V6
 
   ngMesh->SetGeometry( shared_ptr<netgen::NetgenGeometry>( &occgeo, &NOOP_Deleter ));