// ************************************************************************ // --- Logiciel MEF++ // --- // --- Copyright 1996-2000 GIREF, Université Laval // --- TOUS DROITS RÉSERVÉS // --- ALL RIGHTS RESERVED // --- // --- Ce logiciel est couvert par la Loi sur le droit d'auteur. // --- L'utilisation, ou la modification de ce logiciel sous toutes ses // --- formes, que ce soit code source ou code compilé, à des fins // --- personnelles et non commerciales sont autorisées sans frais pour // --- autant que la présente notice de copyright ainsi que cette // --- permission apparaissent dans toutes les copies ainsi que dans la // --- documentation. // --- Le GIREF et l'Université Laval ne prétendent en aucune façon que // --- ce logiciel convient à un emploi quelconque. Celui-ci est // --- distribué sans aucune garantie implicite ou explicite. // ************************************************************************ // ******************************************************************** // Nom du fichier: conversionVU.cc // // ******************************************************************** // Description: Programme servant a faire l'évaluation d'un champs 1-2-3 D // format GIREF en une serie de point stocke dans un fichier. // // ******************************************************************** #include "ChaineCar.h" #include "ChampGeoLin.h" #include "ChampScalConstElem.h" #include "ChampScalLin.h" #include "ChampScalQuad.h" #include "ChampTensO2SymLin.h" #include "ChampVect2DLin.h" #include "ChampVect2DQuad.h" #include "ChampVect3DLin.h" #include "ChampVect3DQuad.h" #include "ExportVU.h" #include "ExpressionAlgebrique.h" #include "fonctionsChaineCar.h" #include "InitialisationArgvArgc.h" #include "InitialisationTraitementSignal.h" #include "Maillage.h" #include "PPEvalueChampXYZ.h" #include "traducteurERMsg.h" #include "Vecteur3D.h" #include "VectDyn.h" #include #include #include using namespace std; VectDyn aEval; template void evalueChamp(PTTypeChamp& pChamp,std::ifstream& pFichier, ChampGeoLin& pChampGeo){ ERMsg lMsg = pChamp.importe(pFichier); Entier lNbEval = aEval.reqLongueur(); if(lMsg){ PPEvalueChampXYZ lEvalueChamp; VectDyn lChampAuxPointsDonnes(lNbEval); lEvalueChamp.asgnParametres(pChampGeo,pChamp,aEval,lChampAuxPointsDonnes); lEvalueChamp.effectueCalcul(); std::cout< lArgv = sInitialisationArgvArgc.reqArgv(); // On déclare une variable qui contiendra potentiellement un message d'erreur ERMsg lMsg = ERMsg(ERMsg::OK); // On déclare les variables qui seront extraites de la ligne de commande ChaineCar lNom; ChaineCar lTypeDeChamp; ChaineCar lNomDuFichier; ChaineCar lNomDuChamp("defaut"); ChaineCar lNomDuFichierPtsXYZ; std::ifstream lFichier; bool lVerbose(false); // Vérification des paramètres passés à la ligne de commande. const Entier lNbArg = lArgv.size(); if (lNbArg < 4 || lNbArg > 5) { ChaineCar lNomProgramme = sInitialisationArgvArgc.reqNomProgramme(); ChaineCar lMessageUsage = "USAGE: \n"; lMessageUsage += enleveCheminAccesFichier(lNomProgramme); lMessageUsage += "[-v]erbose Prefixe_fichier_mail nom_fichier_champ fichier_pt_evaluation"; lMsg.ajoute(ERMsg(ERMsg::ERREUR, lMessageUsage)); } else { if(lArgv[1] == "-v"){ lVerbose = true; lNom = lArgv[2]; lNomDuFichier = lArgv[3]; lNomDuFichierPtsXYZ = lArgv[4]; } else { lNom = lArgv[1]; lNomDuFichier = lArgv[2]; lNomDuFichierPtsXYZ = lArgv[3]; } } // Pre traitement pour le fichier des points d'evalautions Entier lNbEval(0); if(lMsg){ lFichier.open(lNomDuFichierPtsXYZ.c_str()); if(lFichier){ // En premier on veut le nombre d'evaluation: lFichier >> lNbEval; aEval.asgnLongueur(lNbEval); for (Entier i=0; i> aEval[i]; if(lVerbose) std::cout<