Salome HOME
*** empty log message ***
[modules/multipr.git] / src / MULTIPR / MULTIPR_Utils.hxx
1 // Project MULTIPR, IOLS WP1.2.1 - EDF/CS
2 // Partitioning/decimation module for the SALOME v3.2 platform
3
4 /**
5  * \file    MULTIPR_Utils.hxx
6  *
7  * \brief   Some useful miscellaneous tools.
8  *
9  * \author  Olivier LE ROUX - CS, Virtual Reality Dpt
10  * 
11  * \date    01/2007
12  */
13
14 #ifndef MULTIPR_UTILS_HXX
15 #define MULTIPR_UTILS_HXX
16
17 extern "C"
18 {
19         #include "med.h"
20 }
21
22 #include <string>
23 #include <vector>
24
25
26 namespace multipr
27 {
28
29
30 /**
31  * Removes all the pChar at the end of the string.
32  * \param  pStr  any valid C string ending with the char '\0'.
33  * \param  pChar any char; SPACE by default.
34  * \return the same string where the ending spaces have been removed.
35  */
36 void trim(char* pStr, char pChar=' ');
37
38
39 /**
40  * Returns true iff the given string starts by prefix.
41  * \param  pStr       any valid C string ending with the char '\0'.
42  * \param  pStrPrefix any valid C string ending with the char '\0'.
43  * \return true iff the given string starts by prefix.
44  */
45 bool startWith(const char* pStr, const char* pStrPrefix);
46
47  
48 /**
49  * Removes the extension (suffix) of a filename.
50  * Example: removeExtension("agregat100grains_12pas.med", ".med") -> "agregat100grains_12pas"
51  * \param  pPilename  any valid C string ending with the char '\0'.
52  * \param  pExtension any valid C string ending with the char '\0'.
53  * \return the filename without extension.
54  */
55 std::string removeExtension(const char* pFilename, const char* pExtension);
56
57
58 /**
59  * Prints all the elements of a 2D array.
60  * \param  pData   all the data (should contain pNumberOfElements * pDimOfElements values)
61  * \param  pNumElt number of elements to display.
62  * \param  pDimElt Dimension of elements.
63  * \param  pPrefix string to display before each element.
64  */
65 void printArray2D(
66         const med_float* pData, 
67         const int        pNumElt,
68         const int        pDimElt,
69         const char*      pPrefix);
70         
71
72 /**
73  * Converts any float value to a string (remove unecessary 0).
74  * \param  mV any float value.
75  */
76 std::string realToString(med_float mV);
77
78
79 /**
80  * Returns the name of all meshes contained in a sequential MED file.
81  * \param  pMEDfilename name of any valid sequential MED file; must not be NULL.
82  * \return a list of mesh names.
83  * \throw  NullArgumentException if pMEDfilename is NULL.
84  * \throw  IOException if any other error occurs while reading MED file.
85  */
86  std::vector<std::string> getListMeshes(const char* pMEDfilename);
87
88  
89  /**
90  * For each field in a sequential MED file, returns its name and the related number of iterations.
91  * \param  pMEDfilename name of any valid sequential MED file; must not be NULL.
92  * \return a list of (name, #iterations).
93  * \throw  NullArgumentException if pMEDfilename is NULL.
94  * \throw  IOException if any other error occurs while reading MED file.
95  */
96  std::vector<std::pair<std::string, int> > getListFields(const char* pMEDfilename);
97
98 } // namespace MULTIPR
99
100
101 #endif // MULTIPR_UTILS_HXX
102
103 // EOF