MeVisLab Toolbox Reference
mlITKCommonToolFunctions.h
Go to the documentation of this file.
1 /*************************************************************************************
2 **
3 ** Copyright 2007, MeVis Medical Solutions AG
4 **
5 ** The user may use this file in accordance with the license agreement provided with
6 ** the Software or, alternatively, in accordance with the terms contained in a
7 ** written agreement between the user and MeVis Medical Solutions AG.
8 **
9 ** For further information use the contact form at https://www.mevislab.de/contact
10 **
11 **************************************************************************************/
12 
13 #pragma once
14 
16 // Include dll-specific settings.
17 #include "mlInitSystemITKSupport.h"
18 
20 #include "mlModuleIncludes.h"
21 #include <mlUnicode.h>
22 
23 ML_START_NAMESPACE
24 
25 //---------------------------------------------------------------------------
27 //---------------------------------------------------------------------------
28 MLITK_SUPPORT_EXPORT std::string mlITKMakeStdString(const char* str);
29 
30 //---------------------------------------------------------------------------
32 //---------------------------------------------------------------------------
33 MLITK_SUPPORT_EXPORT std::string mlITKMakeStdString(const std::string &str);
34 
35 //---------------------------------------------------------------------------
40 //---------------------------------------------------------------------------
41 MLITK_SUPPORT_EXPORT std::string mlITKGetLatin1FromUTF8(const std::string &utf8StdString);
42 
43 //---------------------------------------------------------------------------
50 //---------------------------------------------------------------------------
51 MLITK_SUPPORT_EXPORT std::string & mlITKGetLatin1FromUTF8Static(const std::string &utf8StdString);
52 
53 //---------------------------------------------------------------------------
58 //---------------------------------------------------------------------------
59 MLITK_SUPPORT_EXPORT std::string mlITKGetUTF8FromLatin1(const std::string &latin1StdString);
60 
61 //---------------------------------------------------------------------------
68 //---------------------------------------------------------------------------
69 MLITK_SUPPORT_EXPORT std::string & mlITKGetUTF8FromLatin1Static(const std::string &latin1StdString);
70 
71 
72 //---------------------------------------------------------------------------
75 //---------------------------------------------------------------------------
76 template<typename TemplArrElemType>
77 void ITKArrayFromFixedSizeSTLVector(const ITKML_TYPENAME std::vector<TemplArrElemType> &stlVec, TemplArrElemType *arr, size_t TemplArrSize)
78 {
79  // Copy elements to return array.
80  const size_t siz = stlVec.size();
81  for (size_t c=0; c < TemplArrSize; ++c){ arr[c] = (c < siz) ? stlVec[c] : 0; }
82 }
83 
84 //---------------------------------------------------------------------------
88 //---------------------------------------------------------------------------
89 template<typename TemplArrElemType, unsigned int TemplArrSize>
90 const ITKML_TYPENAME std::vector<TemplArrElemType> STLVectorFromFixedSizeITKArray(const TemplArrElemType *theArray)
91 {
92  typename std::vector<TemplArrElemType> stlVector;
93  for (size_t i=0; i<TemplArrSize; ++i){ stlVector.push_back(theArray[i]); }
94  return stlVector;
95 }
96 
97 ML_END_NAMESPACE
#define MLITK_SUPPORT_EXPORT
When included by other libraries MLITK_SUPPORT_EXPORT is compiled as import symbol.
#define ITKML_TYPENAME
Define it empty. In some cases VC++6 does not accept "typename" where non WIN32 compilers do.
void ITKArrayFromFixedSizeSTLVector(const ITKML_TYPENAME std::vector< TemplArrElemType > &stlVec, TemplArrElemType *arr, size_t TemplArrSize)
Copies TemplArrSize elements from stlVec to arr and - if not enough elements are available - fills up...
const ITKML_TYPENAME std::vector< TemplArrElemType > STLVectorFromFixedSizeITKArray(const TemplArrElemType *theArray)
Create an STL vector with type TemplArrElemType which contains TemplArrSize elements which are read f...
MLITK_SUPPORT_EXPORT std::string & mlITKGetLatin1FromUTF8Static(const std::string &utf8StdString)
Like mlITKGetLatin1FromUTF8(const std::string &utf8StdString); the only difference is that the return...
MLITK_SUPPORT_EXPORT std::string mlITKMakeStdString(const std::string &str)
Convert for a std::string to a std::string safely.
MLITK_SUPPORT_EXPORT std::string & mlITKGetUTF8FromLatin1Static(const std::string &latin1StdString)
Like mlITKGetUTF8FromLatin1(const std::string &latin1StdString); the only difference is that the retu...
MLITK_SUPPORT_EXPORT std::string mlITKGetUTF8FromLatin1(const std::string &latin1StdString)
Convert string from Latin1 to UTF8; return empty string on failure or if "" is passed as latin1StdStr...
MLITK_SUPPORT_EXPORT std::string mlITKGetLatin1FromUTF8(const std::string &utf8StdString)
Convert string from UTF8 to Latin1; return empty string on failure or if "" is passed as utf8StdStrin...