- SCRUTE(myMesh);
- /****************************************************************************
- * NOMBRES D'OBJETS *
- ****************************************************************************/
- fprintf(stdout,"\n(****************************)\n");
- fprintf(stdout,"(* INFORMATIONS GENERALES : *)\n");
- fprintf(stdout,"(****************************)\n");
-
- /* Combien de noeuds ? */
- nbNodes = myMesh->NbNodes();
-
- /* Combien de mailles, faces ou aretes ? */
- Standard_Integer nb_of_nodes, nb_of_edges,nb_of_faces, nb_of_volumes;
- nb_of_edges = myMesh->NbEdges();
- nb_of_faces = myMesh->NbFaces();
- nb_of_volumes = myMesh->NbVolumes();
- nbCells = nb_of_edges + nb_of_faces + nb_of_volumes;
- SCRUTE(nb_of_edges);
- SCRUTE(nb_of_faces);
- SCRUTE(nb_of_volumes);
-
- fprintf(stdout,"%d %d\n",nbNodes,nbCells);
- fprintf(myFileId,"%d %d\n",nbNodes,nbCells);
-
- /****************************************************************************
- * ECRITURE DES NOEUDS *
- ****************************************************************************/
- fprintf(stdout,"\n(************************)\n");
- fprintf(stdout,"(* NOEUDS DU MAILLAGE : *)\n");
- fprintf(stdout,"(************************)\n");
-
- SMDS_MeshNodesIterator itNodes(myMesh);
-
- fprintf(myFileId,"%s\n", sUNV_SEPARATOR);
- fprintf(myFileId,"%s\n", sNODE_UNV_ID );
-
- for (;itNodes.More();itNodes.Next()) {
- const Handle(SMDS_MeshElement)& elem = itNodes.Value();
- const Handle(SMDS_MeshNode )& node = myMesh->GetNode(1, elem);
-
- fprintf(myFileId, sNODE_UNV_DESCR, node->GetID());
- fprintf(myFileId, "%25.16E%25.16E%25.16E\n", node->X(), node->Y(), node->Z());
- }
- fprintf(myFileId,"%s\n", sUNV_SEPARATOR);
-
- /****************************************************************************
- * ECRITURE DES ELEMENTS *
- ****************************************************************************/
- fprintf(stdout,"\n(**************************)\n");
- fprintf(stdout,"(* ELEMENTS DU MAILLAGE : *)\n");
- fprintf(stdout,"(**************************)");
- /* Ecriture des connectivites, noms, numeros des mailles */
-
- fprintf(myFileId,"%s\n", sUNV_SEPARATOR);
- fprintf(myFileId,"%s\n", sELT_UNV_ID );
+ {
+ using namespace UNV2412;
+ TDataSet aDataSet2412;
+
+ // Storing SMDS Edges
+ if(myMesh->NbEdges()){
+ SMDS_EdgeIteratorPtr anIter = myMesh->edgesIterator();
+ while( anIter->more() )
+ {
+ const SMDS_MeshEdge* anElem = anIter->next();
+ int aNbNodes = anElem->NbNodes();
+ TRecord aRec;
+ aRec.label = anElem->GetID();
+ aRec.node_labels.reserve(aNbNodes);
+ if( anElem->IsQuadratic() ) {
+ aRec.fe_descriptor_id = 22;
+ } else {
+ aRec.fe_descriptor_id = 11;
+ }
+ SMDS_NodeIteratorPtr aNodesIter = anElem->nodesIteratorToUNV();
+ while( aNodesIter->more())
+ {
+ const SMDS_MeshNode* aNode = aNodesIter->next();
+ aRec.node_labels.push_back( aNode->GetID() );
+ }
+ aDataSet2412.push_back(aRec);
+ }
+ }