- }
- // look for degeneraged edges and vetices
- for (TopExp_Explorer expE(aShapeFace,TopAbs_EDGE);expE.More();expE.Next())
- {
- TopoDS_Edge aShapeEdge = TopoDS::Edge( expE.Current() );
- if ( BRep_Tool::Degenerated( aShapeEdge ))
- {
- degenNgIds.push_back( invalid_ID );
- int* ptrIdOnEdge = & degenNgIds.back();
- // remember edge id
- int edgeID = meshDS->ShapeToIndex( aShapeEdge );
- degenShapeIdToPtrNgId.insert( make_pair( edgeID, ptrIdOnEdge ));
- // remember vertex id
- int vertexID = meshDS->ShapeToIndex( TopExp::FirstVertex( aShapeEdge ));
- degenShapeIdToPtrNgId.insert( make_pair( vertexID, ptrIdOnEdge ));
- }
- }
- }
- }
- // ---------------------------------
- // Feed the Netgen with surface mesh
- // ---------------------------------
-
- int Netgen_NbOfNodes = 0;
- int Netgen_param2ndOrder = 0;
- double Netgen_paramFine = 1.;
- double Netgen_paramSize = pow( 72, 1/6. ) * pow( _maxElementVolume, 1/3. );
-
- double Netgen_point[3];
- int Netgen_triangle[3];
- int Netgen_tetrahedron[4];
-
- Ng_Init();
-
- Ng_Mesh * Netgen_mesh = Ng_NewMesh();
-
- // set nodes and remember thier netgen IDs
- bool isDegen = false, hasDegen = !degenShapeIdToPtrNgId.empty();
- TNodeToIDMap::iterator n_id = nodeToNetgenID.begin();
- for ( ; n_id != nodeToNetgenID.end(); ++n_id )
- {
- const SMDS_MeshNode* node = n_id->first;