Salome HOME
merge from master
[tools/sat_salome.git] / products / patches / NETGENPlugin_Mesh.patch
1 diff --git a/src/NETGENPlugin/NETGENPlugin_Mesher.cxx b/src/NETGENPlugin/NETGENPlugin_Mesher.cxx
2 index f6398f4..7faff19 100644
3 --- a/src/NETGENPlugin/NETGENPlugin_Mesher.cxx
4 +++ b/src/NETGENPlugin/NETGENPlugin_Mesher.cxx
5 @@ -83,6 +83,7 @@
6  #include <occgeom.hpp>
7  #include <meshing.hpp>
8  //#include <ngexception.hpp>
9 +
10  namespace netgen {
11  #ifdef NETGEN_V5
12    extern int OCCGenerateMesh (OCCGeometry&, Mesh*&, MeshingParameters&, int, int);
13 @@ -406,7 +407,7 @@ namespace
14      if ( node_id->second == newNgId)
15      {
16  #if defined(DUMP_SEGMENTS) || defined(DUMP_TRIANGLES)
17 -      cout << "Ng " << newNgId << " - " << node;
18 +      std::cout << "Ng " << newNgId << " - " << node;
19  #endif
20        netgen::MeshPoint p( netgen::Point<3> (node->X(), node->Y(), node->Z()) );
21        ngMesh.AddPoint( p );
22 @@ -986,12 +987,12 @@ double NETGENPlugin_Mesher::GetDefaultMinSize(const TopoDS_Shape& geom,
23    if ( minh > 0.25 * bb.SquareExtent() ) // simple geometry, rough triangulation
24    {
25      minh = 1e-3 * sqrt( bb.SquareExtent());
26 -    //cout << "BND BOX minh = " <<minh << endl;
27 +    //std::cout << "BND BOX minh = " <<minh << std::endl;
28    }
29    else
30    {
31      minh = sqrt( minh ); // triangulation for visualization is rather fine
32 -    //cout << "TRIANGULATION minh = " <<minh << endl;
33 +    //std::cout << "TRIANGULATION minh = " <<minh << std::endl;
34    }
35    if ( minh > 0.5 * maxSize )
36      minh = maxSize / 3.;
37 @@ -1168,16 +1169,16 @@ bool NETGENPlugin_Mesher::FillNgMesh(netgen::OCCGeometry&           occgeom,
38            RestrictLocalSize( ngMesh, 0.5*(np1+np2), (np1-np2).Modulus() );
39  
40  #ifdef DUMP_SEGMENTS
41 -          cout << "Segment: " << seg.edgenr << " on SMESH face " << helper.GetMeshDS()->ShapeToIndex( face ) << endl
42 -               << "\tface index: " << seg.si << endl
43 -               << "\tp1: " << seg[0] << endl
44 -               << "\tp2: " << seg[1] << endl
45 -               << "\tp0 param: " << seg.epgeominfo[ 0 ].dist << endl
46 -               << "\tp0 uv: " << seg.epgeominfo[ 0 ].u <<", "<< seg.epgeominfo[ 0 ].v << endl
47 -            //<< "\tp0 edge: " << seg.epgeominfo[ 0 ].edgenr << endl
48 -               << "\tp1 param: " << seg.epgeominfo[ 1 ].dist << endl
49 -               << "\tp1 uv: " << seg.epgeominfo[ 1 ].u <<", "<< seg.epgeominfo[ 1 ].v << endl;
50 -            //<< "\tp1 edge: " << seg.epgeominfo[ 1 ].edgenr << endl;
51 +          std::cout << "Segment: " << seg.edgenr << " on SMESH face " << helper.GetMeshDS()->ShapeToIndex( face ) << std::endl
52 +               << "\tface index: " << seg.si << std::endl
53 +               << "\tp1: " << seg[0] << std::endl
54 +               << "\tp2: " << seg[1] << std::endl
55 +               << "\tp0 param: " << seg.epgeominfo[ 0 ].dist << std::endl
56 +               << "\tp0 uv: " << seg.epgeominfo[ 0 ].u <<", "<< seg.epgeominfo[ 0 ].v << std::endl
57 +            //<< "\tp0 edge: " << seg.epgeominfo[ 0 ].edgenr << std::endl
58 +               << "\tp1 param: " << seg.epgeominfo[ 1 ].dist << std::endl
59 +               << "\tp1 uv: " << seg.epgeominfo[ 1 ].u <<", "<< seg.epgeominfo[ 1 ].v << std::endl;
60 +            //<< "\tp1 edge: " << seg.epgeominfo[ 1 ].edgenr << std::endl;
61  #endif
62            if ( isSeam )
63            {
64 @@ -1195,10 +1196,10 @@ bool NETGENPlugin_Mesher::FillNgMesh(netgen::OCCGeometry&           occgeom,
65              seg.edgenr = ngMesh.GetNSeg() + 1; // segment id
66              ngMesh.AddSegment( seg );
67  #ifdef DUMP_SEGMENTS
68 -            cout << "Segment: " << seg.edgenr << endl
69 +            std::cout << "Segment: " << seg.edgenr << std::endl
70                   << "\t is SEAM (reverse) of the previous. "
71                   << " Other " << (helper.GetPeriodicIndex() && 1 ? "U" : "V")
72 -                 << " = " << otherSeamParam << endl;
73 +                 << " = " << otherSeamParam << std::endl;
74  #endif
75            }
76            else if ( fOri == TopAbs_INTERNAL )
77 @@ -1208,7 +1209,7 @@ bool NETGENPlugin_Mesher::FillNgMesh(netgen::OCCGeometry&           occgeom,
78              seg.edgenr = ngMesh.GetNSeg() + 1; // segment id
79              ngMesh.AddSegment( seg );
80  #ifdef DUMP_SEGMENTS
81 -            cout << "Segment: " << seg.edgenr << endl << "\t is REVERSE of the previous" << endl;
82 +            std::cout << "Segment: " << seg.edgenr << std::endl << "\t is REVERSE of the previous" << std::endl;
83  #endif
84            }
85          }
86 @@ -1359,8 +1360,8 @@ bool NETGENPlugin_Mesher::FillNgMesh(netgen::OCCGeometry&           occgeom,
87        SMESH_TNodeXYZ xyz[3];
88  
89  #ifdef DUMP_TRIANGLES
90 -      cout << "SMESH face " << helper.GetMeshDS()->ShapeToIndex( geomFace )
91 -           << " internal="<<isInternalFace << endl;
92 +      std::cout << "SMESH face " << helper.GetMeshDS()->ShapeToIndex( geomFace )
93 +           << " internal="<<isInternalFace << std::endl;
94  #endif
95  
96        SMDS_ElemIteratorPtr faces = smDS->GetElements();
97 @@ -1411,7 +1412,7 @@ bool NETGENPlugin_Mesher::FillNgMesh(netgen::OCCGeometry&           occgeom,
98  
99          ngMesh.AddSurfaceElement (tri);
100  #ifdef DUMP_TRIANGLES
101 -        cout << tri << endl;
102 +        std::cout << tri << std::endl;
103  #endif
104  
105          if ( isInternalFace )
106 @@ -1419,7 +1420,7 @@ bool NETGENPlugin_Mesher::FillNgMesh(netgen::OCCGeometry&           occgeom,
107            swap( tri[1], tri[2] );
108            ngMesh.AddSurfaceElement (tri);
109  #ifdef DUMP_TRIANGLES
110 -          cout << tri << endl;
111 +          std::cout << tri << std::endl;
112  #endif
113          }
114        }
115 @@ -1824,7 +1825,7 @@ void NETGENPlugin_Mesher::AddIntVerticesInFaces(const netgen::OCCGeometry&     o
116        double nodeDist3D  = evalDist( vData.uv, vData.uvClose, surf );
117        bool avgLenOK  = ( avgSegLen2d < 0.75 * nodeDist2D );
118        bool hintLenOK = ( segLenHint  < 0.75 * nodeDist3D );
119 -      //cout << "uvV " << uvV.X() <<","<<uvV.Y() << " ";
120 +      //std::cout << "uvV " << uvV.X() <<","<<uvV.Y() << " ";
121        if ( hintLenOK || avgLenOK )
122        {
123          // create a point between the closest node and V
124 @@ -1840,11 +1841,11 @@ void NETGENPlugin_Mesher::AddIntVerticesInFaces(const netgen::OCCGeometry&     o
125          netgen::MeshPoint mp( netgen::Point<3> (P.X(), P.Y(), P.Z()));
126          ngMesh.AddPoint ( mp, 1, netgen::EDGEPOINT );
127          segEnd2 = ngMesh.GetNP();
128 -        //cout << "Middle " << r << " uv " << uvP.X() << "," << uvP.Y() << "( " << ngMesh.Point(segEnd2).X()<<","<<ngMesh.Point(segEnd2).Y()<<","<<ngMesh.Point(segEnd2).Z()<<" )"<< endl;
129 +        //std::cout << "Middle " << r << " uv " << uvP.X() << "," << uvP.Y() << "( " << ngMesh.Point(segEnd2).X()<<","<<ngMesh.Point(segEnd2).Y()<<","<<ngMesh.Point(segEnd2).Z()<<" )"<< std::endl;
130          SMDS_MeshNode * nP = helper.AddNode(P.X(), P.Y(), P.Z());
131          nodeVec.push_back( nP );
132        }
133 -      //else cout << "at Node " << " uv " << uvP.X() << "," << uvP.Y() << endl;
134 +      //else std::cout << "at Node " << " uv " << uvP.X() << "," << uvP.Y() << std::endl;
135  
136        // Add the segment
137        netgen::Segment seg;
138 @@ -1894,10 +1895,10 @@ void NETGENPlugin_Mesher::AddIntVerticesInSolids(const netgen::OCCGeometry&
139  #ifdef DUMP_TRIANGLES_SCRIPT
140    // create a python script making a mesh containing triangles added for internal vertices
141    ofstream py(DUMP_TRIANGLES_SCRIPT);
142 -  py << "import SMESH"<< endl
143 -     << "from salome.smesh import smeshBuilder"<<endl
144 -     << "smesh = smeshBuilder.New()"<<endl
145 -     << "m = smesh.Mesh(name='triangles')" << endl;
146 +  py << "import SMESH"<< std::endl
147 +     << "from salome.smesh import smeshBuilder"<<std::endl
148 +     << "smesh = smeshBuilder.New()"<<std::endl
149 +     << "m = smesh.Mesh(name='triangles')" << std::endl;
150  #endif
151    if ((int) nodeVec.size() < ngMesh.GetNP() )
152      nodeVec.resize( ngMesh.GetNP(), 0 );
153 @@ -2095,10 +2096,10 @@ void NETGENPlugin_Mesher::AddIntVerticesInSolids(const netgen::OCCGeometry&
154        ngMesh.AddSurfaceElement (tri);
155  
156  #ifdef DUMP_TRIANGLES_SCRIPT
157 -      py << "n1 = m.AddNode( "<< mpV(0)<<", "<< mpV(1)<<", "<< mpV(2)<<") "<< endl
158 -         << "n2 = m.AddNode( "<< mp[0](0)<<", "<< mp[0](1)<<", "<< mp[0](2)<<") "<< endl
159 -         << "n3 = m.AddNode( "<< mp[1](0)<<", "<< mp[1](1)<<", "<< mp[1](2)<<" )" << endl
160 -         << "m.AddFace([n1,n2,n3])" << endl;
161 +      py << "n1 = m.AddNode( "<< mpV(0)<<", "<< mpV(1)<<", "<< mpV(2)<<") "<< std::endl
162 +         << "n2 = m.AddNode( "<< mp[0](0)<<", "<< mp[0](1)<<", "<< mp[0](2)<<") "<< std::endl
163 +         << "n3 = m.AddNode( "<< mp[1](0)<<", "<< mp[1](1)<<", "<< mp[1](2)<<" )" << std::endl
164 +         << "m.AddFace([n1,n2,n3])" << std::endl;
165  #endif
166      } // loop on internal vertices of a solid
167  
168 @@ -2315,7 +2316,7 @@ NETGENPlugin_Mesher::AddSegmentsToMesh(netgen::Mesh&                    ngMesh,
169      }
170  
171  #ifdef DUMP_SEGMENTS
172 -    cout << "BEGIN WIRE " << iW << endl;
173 +    std::cout << "BEGIN WIRE " << iW << std::endl;
174      for ( int i = prevNbNGSeg+1; i <= ngMesh.GetNSeg(); ++i )
175      {
176        netgen::Segment& seg = ngMesh.LineSegment( i );
177 @@ -2323,21 +2324,21 @@ NETGENPlugin_Mesher::AddSegmentsToMesh(netgen::Mesh&                    ngMesh,
178          netgen::Segment& prevSeg = ngMesh.LineSegment( i-1 );
179          if ( seg[0] == prevSeg[1] && seg[1] == prevSeg[0] )
180          {
181 -          cout << "Segment: " << seg.edgenr << endl << "\tis REVERSE of the previous one" << endl;
182 +          std::cout << "Segment: " << seg.edgenr << std::endl << "\tis REVERSE of the previous one" << std::endl;
183            continue;
184          }
185        }
186 -      cout << "Segment: " << seg.edgenr << endl
187 -           << "\tp1: " << seg[0] << "   n" << nodeVec[ seg[0]]->GetID() << endl
188 -           << "\tp2: " << seg[1] << "   n" << nodeVec[ seg[1]]->GetID() <<  endl
189 -           << "\tp0 param: " << seg.epgeominfo[ 0 ].dist << endl
190 -           << "\tp0 uv: " << seg.epgeominfo[ 0 ].u <<", "<< seg.epgeominfo[ 0 ].v << endl
191 -           << "\tp0 edge: " << seg.epgeominfo[ 0 ].edgenr << endl
192 -           << "\tp1 param: " << seg.epgeominfo[ 1 ].dist << endl
193 -           << "\tp1 uv: " << seg.epgeominfo[ 1 ].u <<", "<< seg.epgeominfo[ 1 ].v << endl
194 -           << "\tp1 edge: " << seg.epgeominfo[ 1 ].edgenr << endl;
195 +      std::cout << "Segment: " << seg.edgenr << std::endl
196 +           << "\tp1: " << seg[0] << "   n" << nodeVec[ seg[0]]->GetID() << std::endl
197 +           << "\tp2: " << seg[1] << "   n" << nodeVec[ seg[1]]->GetID() <<  std::endl
198 +           << "\tp0 param: " << seg.epgeominfo[ 0 ].dist << std::endl
199 +           << "\tp0 uv: " << seg.epgeominfo[ 0 ].u <<", "<< seg.epgeominfo[ 0 ].v << std::endl
200 +           << "\tp0 edge: " << seg.epgeominfo[ 0 ].edgenr << std::endl
201 +           << "\tp1 param: " << seg.epgeominfo[ 1 ].dist << std::endl
202 +           << "\tp1 uv: " << seg.epgeominfo[ 1 ].u <<", "<< seg.epgeominfo[ 1 ].v << std::endl
203 +           << "\tp1 edge: " << seg.epgeominfo[ 1 ].edgenr << std::endl;
204      }
205 -    cout << "--END WIRE " << iW << endl;
206 +    std::cout << "--END WIRE " << iW << std::endl;
207  #else
208      SMESH_Comment __not_unused_variable( prevNbNGSeg );
209  #endif
210 @@ -3669,8 +3670,8 @@ double NETGENPlugin_Mesher::GetProgress(const SMESH_Algo* holder,
211          double    doneShapeRate = _curShapeIndex / double( _occgeom->fmap.Extent() );
212          double         doneTime = edgeMeshingTime + doneShapeRate * faceMeshingTime;
213          ((double&)    _ticTime) = doneTime / _totalTime / _progressTic;
214 -        // cout << "shape " << _curShapeIndex << " _ticTime " << _ticTime
215 -        //      << " " << doneTime / _totalTime / _progressTic << endl;
216 +        // std::cout << "shape " << _curShapeIndex << " _ticTime " << _ticTime
217 +        //      << " " << doneTime / _totalTime / _progressTic << std::endl;
218        }
219      }
220    }
221 @@ -3688,8 +3689,8 @@ double NETGENPlugin_Mesher::GetProgress(const SMESH_Algo* holder,
222        double    doneShapeRate = _curShapeIndex / double( _occgeom->somap.Extent() );
223        double         doneTime = edgeFaceMeshingTime + doneShapeRate * voluMeshingTime;
224        ((double&)    _ticTime) = doneTime / _totalTime / _progressTic;
225 -      // cout << "shape " << _curShapeIndex << " _ticTime " << _ticTime
226 -      //      << " " << doneTime / _totalTime / _progressTic << endl;
227 +      // std::cout << "shape " << _curShapeIndex << " _ticTime " << _ticTime
228 +      //      << " " << doneTime / _totalTime / _progressTic << std::endl;
229      }
230    }
231  
232 @@ -3708,7 +3709,7 @@ double NETGENPlugin_Mesher::GetProgress(const SMESH_Algo* holder,
233      ((int&) *algoProgressTic )++;
234      ((double&) *algoProgress) = progress;
235    }
236 -  //cout << progress << " "  << *algoProgressTic << " " << netgen::multithread.task << " "<< _ticTime << endl;
237 +  //std::cout << progress << " "  << *algoProgressTic << " " << netgen::multithread.task << " "<< _ticTime << std::endl;
238  
239    return Min( progress, 0.99 );
240  }
241 @@ -3802,10 +3803,10 @@ void NETGENPlugin_Mesher::toPython( const netgen::Mesh* ngMesh )
242    ofstream outfile( pyFile, ios::out );
243    if ( !outfile ) return;
244  
245 -  outfile << "import salome, SMESH" << endl
246 -          << "from salome.smesh import smeshBuilder" << endl
247 -          << "smesh = smeshBuilder.New()" << endl
248 -          << "mesh = smesh.Mesh()" << endl << endl;
249 +  outfile << "import salome, SMESH" << std::endl
250 +          << "from salome.smesh import smeshBuilder" << std::endl
251 +          << "smesh = smeshBuilder.New()" << std::endl
252 +          << "mesh = smesh.Mesh()" << std::endl << std::endl;
253  
254    using namespace netgen;
255    PointIndex pi;
256 @@ -3815,12 +3816,12 @@ void NETGENPlugin_Mesher::toPython( const netgen::Mesh* ngMesh )
257      outfile << "mesh.AddNode( ";
258      outfile << (*ngMesh)[pi](0) << ", ";
259      outfile << (*ngMesh)[pi](1) << ", ";
260 -    outfile << (*ngMesh)[pi](2) << ") ## "<< pi << endl;
261 +    outfile << (*ngMesh)[pi](2) << ") ## "<< pi << std::endl;
262    }
263  
264    int nbDom = ngMesh->GetNDomains();
265    for ( int i = 0; i < nbDom; ++i )
266 -    outfile<< "grp" << i+1 << " = mesh.CreateEmptyGroup( SMESH.FACE, 'domain"<< i+1 << "')"<< endl;
267 +    outfile<< "grp" << i+1 << " = mesh.CreateEmptyGroup( SMESH.FACE, 'domain"<< i+1 << "')"<< std::endl;
268  
269    SurfaceElementIndex sei;
270    for (sei = 0; sei < ngMesh->GetNSE(); sei++)
271 @@ -3830,14 +3831,14 @@ void NETGENPlugin_Mesher::toPython( const netgen::Mesh* ngMesh )
272      for (int j = 0; j < sel.GetNP(); j++)
273        outfile << sel[j] << ( j+1 < sel.GetNP() ? ", " : " ])");
274      if ( sel.IsDeleted() ) outfile << " ## IsDeleted ";
275 -    outfile << endl;
276 +    outfile << std::endl;
277  
278      if ((*ngMesh)[sei].GetIndex())
279      {
280        if ( int dom1 = ngMesh->GetFaceDescriptor((*ngMesh)[sei].GetIndex ()).DomainIn())
281 -        outfile << "grp"<< dom1 <<".Add([ " << (int)sei+1 << " ])" << endl;
282 +        outfile << "grp"<< dom1 <<".Add([ " << (int)sei+1 << " ])" << std::endl;
283        if ( int dom2 = ngMesh->GetFaceDescriptor((*ngMesh)[sei].GetIndex ()).DomainOut())
284 -        outfile << "grp"<< dom2 <<".Add([ " << (int)sei+1 << " ])" << endl;
285 +        outfile << "grp"<< dom2 <<".Add([ " << (int)sei+1 << " ])" << std::endl;
286      }
287    }
288  
289 @@ -3847,7 +3848,7 @@ void NETGENPlugin_Mesher::toPython( const netgen::Mesh* ngMesh )
290      outfile << "mesh.AddVolume([ ";
291      for (int j = 0; j < el.GetNP(); j++)
292        outfile << el[j] << ( j+1 < el.GetNP() ? ", " : " ])");
293 -    outfile << endl;
294 +    outfile << std::endl;
295    }
296  
297    for (int i = 1; i <= ngMesh->GetNSeg(); i++)
298 @@ -3855,9 +3856,9 @@ void NETGENPlugin_Mesher::toPython( const netgen::Mesh* ngMesh )
299      const Segment & seg = ngMesh->LineSegment (i);
300      outfile << "mesh.AddEdge([ "
301              << seg[0] << ", "
302 -            << seg[1] << " ])" << endl;
303 +            << seg[1] << " ])" << std::endl;
304    }
305 -  cout << "Write " << pyFile << endl;
306 +  std::cout << "Write " << pyFile << std::endl;
307  }
308  
309  //================================================================================
310 @@ -4174,7 +4175,7 @@ void NETGENPlugin_Internals::getInternalEdges( TopTools_IndexedMapOfShape& fmap,
311  
312      ( ev.ShapeType() == TopAbs_EDGE ? emap : vmap ).Add( ev );
313      fmap.Add( face );
314 -    //cout<<"INTERNAL EDGE or VERTEX "<<ev_face->first<<" on face "<<ev_face->second<<endl;
315 +    //std::cout<<"INTERNAL EDGE or VERTEX "<<ev_face->first<<" on face "<<ev_face->second<<std::endl;
316  
317      smToPrecompute[ MeshDim_1D ].push_back( _mesh.GetSubMeshContaining( ev_face->first ));
318    }
319 @@ -4309,7 +4310,7 @@ NETGENPlugin_NetgenLibWrapper::NETGENPlugin_NetgenLibWrapper()
320      netgen::myerr   = netgen::mycout;
321      _coutBuffer     = std::cout.rdbuf();
322  #ifdef _DEBUG_
323 -    cout << "NOTE: netgen output is redirected to file " << _outputFileName << endl;
324 +    std::cout << "NOTE: netgen output is redirected to file " << _outputFileName << std::endl;
325  #else
326      std::cout.rdbuf( netgen::mycout->rdbuf() );
327  #endif