X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FDriverUNV%2FUNV2417_Structure.cxx;fp=src%2FDriverUNV%2FUNV2417_Structure.cxx;h=4d3eac88eaaee646379efa10d72aaf5a15330940;hb=ef7bb39238fbbe7ba43ffdcaceb5e290951e587e;hp=f5e84926c78144f83f4757f18c955386e1865416;hpb=82871fddd8641f92e6050d8b95ab28c45f5fe4b8;p=modules%2Fsmesh.git diff --git a/src/DriverUNV/UNV2417_Structure.cxx b/src/DriverUNV/UNV2417_Structure.cxx index f5e84926c..4d3eac88e 100644 --- a/src/DriverUNV/UNV2417_Structure.cxx +++ b/src/DriverUNV/UNV2417_Structure.cxx @@ -1,6 +1,9 @@ #include "UNV2417_Structure.hxx" #include "UNV_Utilities.hxx" +#include +#include + using namespace std; using namespace UNV; using namespace UNV2417; @@ -12,10 +15,10 @@ static int MYDEBUG = 0; #endif -static string _group_labels[] = {"2417", "2429", "2430", "2432", "2435"}; -#define NBGROUP 5 +static string _group_labels[] = {"2417", "2429", "2430", "2432", "2435", "2452"}; +#define NBGROUP 6 -//static string _label_dataset = "2435"; +static string _label_dataset = "2429"; void UNV2417::Read(std::ifstream& in_stream, TDataSet& theDataSet) { @@ -72,10 +75,10 @@ void UNV2417::ReadGroup(const std::string& myGroupLabel, std::ifstream& in_strea int aElType; int aElId; int aNum; - for(int j=0; j < n_nodes; j++){ + for(int j=0; j < n_nodes; j++){ in_stream>>aElType; in_stream>>aElId; - if (myGroupLabel.compare("2435") == 0) { + if ((myGroupLabel.compare("2435") == 0) || (myGroupLabel.compare("2452") == 0)) { in_stream>>aTmp; in_stream>>aTmp; } @@ -96,3 +99,62 @@ void UNV2417::ReadGroup(const std::string& myGroupLabel, std::ifstream& in_strea } } + + +void UNV2417::Write(std::ofstream& out_stream, const TDataSet& theDataSet) +{ + if(!out_stream.good()) + EXCEPTION(runtime_error,"ERROR: Output file not good."); + + /* + * Write beginning of dataset + */ + out_stream<<" -1\n"; + out_stream<<" "<<_label_dataset<<"\n"; + + TDataSet::const_iterator anIter = theDataSet.begin(); + for(; anIter != theDataSet.end(); anIter++){ + const TGroupId& aLabel = anIter->first; + const TRecord& aRec = anIter->second; + int aNbNodes = aRec.NodeList.size(); + int aNbElements = aRec.ElementList.size(); + int aNbRecords = aNbNodes + aNbElements; + + out_stream<