1 /*=========================================================================
2  *
3  *  Copyright Insight Software Consortium
4  *
5  *  Licensed under the Apache License, Version 2.0 (the "License");
6  *  you may not use this file except in compliance with the License.
7  *  You may obtain a copy of the License at
8  *
9  *         http://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  *  Unless required by applicable law or agreed to in writing, software
12  *  distributed under the License is distributed on an "AS IS" BASIS,
13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  *  See the License for the specific language governing permissions and
15  *  limitations under the License.
16  *
17  *=========================================================================*/
18 #include "itkIOCommon.h"
19 
20 namespace itk
21 {
22 const char *const ITK_OnDiskStorageTypeName = "ITK_OnDiskStorageTypeName";
23 const char *const ITK_ImageFileBaseName = "ITK_ImageFileBaseName";
24 const char *const ITK_VoxelUnits = "ITK_VoxelUnits";
25 const char *const ITK_OnDiskBitPerPixel = "ITK_OnDiskBitPerPixel";
26 const char *const SPM_ROI_SCALE = "SPM_ROI_SCALE";
27 const char *const ITK_FileNotes = "ITK_FileNotes";
28 const char *const ITK_Origin = "ITK_Origin";
29 const char *const ITK_Spacing = "ITK_Spacing";
30 const char *const ITK_ZDirection = "ITK_ZDirection";
31 const char *const ITK_FileOriginator = "ITK_FileOriginator";
32 const char *const ITK_OriginationDate = "ITK_OriginationDate";
33 const char *const ITK_PatientID = "ITK_PatientID";
34 const char *const ITK_ExperimentDate = "ITK_ExperimentDate";
35 const char *const ITK_ExperimentTime = "ITK_ExperimentTime";
36 const char *const ITK_InputFilterName = "ITK_InputFilterName";
37 const char *const ITK_NumberOfDimensions = "ITK_NumberOfDimensions";
38 const char *const ITK_PatientName = "ITK_PatientName";
39 const char *const ITK_ScanID = "ITK_ScanID";
40 const char *const ITK_ImageType = "ITK_ImageType";
41 const char *const ROI_NAME = "ROI_NAME";
42 const char *const ROI_X_SIZE = "ROI_X_SIZE";
43 const char *const ROI_X_RESOLUTION = "ROI_X_RESOLUTION";
44 const char *const ROI_Y_SIZE = "ROI_Y_SIZE";
45 const char *const ROI_Y_RESOLUTION = "ROI_Y_RESOLUTION";
46 const char *const ROI_Z_SIZE = "ROI_Z_SIZE";
47 const char *const ROI_Z_RESOLUTION = "ROI_Z_RESOLUTION";
48 const char *const ROI_NUM_SEGMENTS = "ROI_NUM_SEGMENTS";
49 const char *const ROI_PLANE = "ROI_PLANE";
50 const char *const ROI_SCAN_ID = "ROI_SCAN_ID";
51 
52 std::string IOCommon
AtomicPixelTypeToString(const AtomicPixelType pixelType)53 ::AtomicPixelTypeToString(const AtomicPixelType pixelType)
54 {
55   switch ( pixelType )
56     {
57     case ITK_UCHAR:
58       return "unsigned char";
59 
60     case ITK_CHAR:
61       return "char";
62 
63     case ITK_USHORT:
64       return "unsigned short";
65 
66     case ITK_SHORT:
67       return "short";
68 
69     case ITK_UINT:
70       return "unsigned int";
71 
72     case ITK_INT:
73       return "int";
74 
75     case ITK_ULONG:
76       return "unsigned long";
77 
78     case ITK_LONG:
79       return "long";
80 
81     case ITK_FLOAT:
82       return "float";
83 
84     case ITK_DOUBLE:
85       return "double";
86 
87     default:
88       return "unknown";
89     }
90 }
91 
92 unsigned int IOCommon
ComputeSizeOfAtomicPixelType(const AtomicPixelType pixelType)93 ::ComputeSizeOfAtomicPixelType(const AtomicPixelType pixelType)
94 {
95   switch ( pixelType )
96     {
97     case ITK_CHAR:
98       return static_cast< unsigned int >( sizeof( char ) );
99 
100     case ITK_UCHAR:
101       return static_cast< unsigned int >( sizeof( unsigned char ) );
102 
103     case ITK_SHORT:
104       return static_cast< unsigned int >( sizeof( short ) );
105 
106     case ITK_USHORT:
107       return static_cast< unsigned int >( sizeof( unsigned short ) );
108 
109     case ITK_INT:
110       return static_cast< unsigned int >( sizeof( int ) );
111 
112     case ITK_UINT:
113       return static_cast< unsigned int >( sizeof( unsigned int ) );
114 
115     case ITK_LONG:
116       return static_cast< unsigned int >( sizeof( long ) );
117 
118     case ITK_ULONG:
119       return static_cast< unsigned int >( sizeof( unsigned long ) );
120 
121     case ITK_FLOAT:
122       return static_cast< unsigned int >( sizeof( float ) );
123 
124     case ITK_DOUBLE:
125       return static_cast< unsigned int >( sizeof( double ) );
126 
127     default:
128       return static_cast< unsigned int >( sizeof( char ) );
129 
130     }
131 }
132 } // namespace itk
133