- /* Read extra vertices for quadratic hexahedra */
- std::vector< std::vector<int> > quadNodesAtHexahedra;
- int nbQuadHexa = 0;
- if ( (nbQuadHexa = GmfStatKwd(meshID, GmfExtraVerticesAtHexahedra)) )
- {
- GmfGotoKwd(meshID, GmfExtraVerticesAtHexahedra);
- quadNodesAtHexahedra.reserve( nbQuadHexa );
- std::vector<int> nodes( 19 );
- for ( int i = 1; i <= nbQuadHexa; ++i )
- {
- GmfGetLin(meshID, GmfExtraVerticesAtHexahedra, &iN[0], &iN[1], // Hexa Id, Nb of extra vertices
- &iN[2], &iN[3], &iN[4], &iN[5],
- &iN[6], &iN[7], &iN[8], &iN[9],
- &iN[10], &iN[11], &iN[12], &iN[13], // HEXA20
- &iN[14],
- &iN[15], &iN[16], &iN[17], &iN[18],
- &iN[19],
- &iN[20]); // HEXA27
- nodes.clear();
- nodes.push_back(iN[2]);
- nodes.push_back(iN[3]);
- nodes.push_back(iN[4]);
- nodes.push_back(iN[5]);
- nodes.push_back(iN[6]);
- nodes.push_back(iN[7]);
- nodes.push_back(iN[8]);
- nodes.push_back(iN[9]);
- nodes.push_back(iN[10]);
- nodes.push_back(iN[11]);
- nodes.push_back(iN[12]);
- nodes.push_back(iN[13]);
- nodes.push_back(iN[14]);
- nodes.push_back(iN[15]);
- nodes.push_back(iN[16]);
- nodes.push_back(iN[17]);
- nodes.push_back(iN[18]);
- nodes.push_back(iN[19]);
- nodes.push_back(iN[20]);
- nodes.resize( iN[1] );
-
- quadNodesAtHexahedra.push_back(nodes);
- }
- }
-