using namespace std; #include "DriverUNV_R_SMDS_Mesh.h" #include "utilities.h" DriverUNV_R_SMDS_Mesh::DriverUNV_R_SMDS_Mesh() { ; } DriverUNV_R_SMDS_Mesh::~DriverUNV_R_SMDS_Mesh() { ; } void DriverUNV_R_SMDS_Mesh::SetMesh(SMDS_Mesh * aMesh) { myMesh = aMesh; } void DriverUNV_R_SMDS_Mesh::SetFile(string aFile) { myFile = aFile; } void DriverUNV_R_SMDS_Mesh::SetFileId(FILE * aFileId) { myFileId = aFileId; } void DriverUNV_R_SMDS_Mesh::SetMeshId(int aMeshId) { myMeshId = aMeshId; } void DriverUNV_R_SMDS_Mesh::Add() { ; } void DriverUNV_R_SMDS_Mesh::Read() { int cell = 0, node = 0, n1, n2, n3, n4, n_nodes, nodes[6], blockId, i; char *s1, *s2, *s3; string str1, str2, str3; int i1 = 0; bool ok, found_block2411, found_block2412; /**************************************************************************** * OUVERTURE DU FICHIER EN LECTURE * ****************************************************************************/ char *file2Read = (char *)myFile.c_str(); myFileId = fopen(file2Read, "r"); if (myFileId < 0) { fprintf(stderr, ">> ERREUR : ouverture du fichier %s \n", file2Read); exit(EXIT_FAILURE); } s1 = (char *)malloc(sizeof(char) * 100); s2 = (char *)malloc(sizeof(char) * 100); s3 = (char *)malloc(sizeof(char) * 100); found_block2411 = false; found_block2412 = false; do { while (i1 == -1) { fscanf(myFileId, "%d\n", &blockId); switch (blockId) { case 2411: { MESSAGE("BlockId " << blockId); fscanf(myFileId, "%d", &node); //MESSAGE("Node "<AddNodeWithID(atof(str1.c_str()), atof(str2.c_str()), atof(str3.c_str()), node); fscanf(myFileId, "%d", &node); } i1 = 0; found_block2411 = true; break; } case 2412: { MESSAGE("BlockId " << blockId); fscanf(myFileId, "%d", &cell); //MESSAGE("Cell "<AddFaceWithID(nodes[0], nodes[1], nodes[2], cell); } else if (n_nodes == 6) { //206 for (i = 1; i <= n_nodes; i++) fscanf(myFileId, "%d", &nodes[i - 1]); ok = myMesh->AddFaceWithID(nodes[0], nodes[2], nodes[4], cell); } } else if ((n1 == 11) || (n1 == 21) || (n1 == 24) || (n1 == 25)) { //103 fgets(s2, 100, myFileId); if (n_nodes == 3) { for (i = 1; i <= n_nodes; i++) fscanf(myFileId, "%d", &nodes[i - 1]); ok = myMesh->AddEdgeWithID(nodes[0], nodes[1], cell); //MESSAGE("in 103 "<AddEdgeWithID(nodes[0], nodes[1], cell); //MESSAGE("in 102 "<