KWStyle - itkSpatialOrientation.h
 
Matrix View
Description

1 /*=========================================================================
2
3   Program:   Insight Segmentation & Registration Toolkit
4   Module:    $RCSfile: itkSpatialOrientation.h.html,v $
5   Language:  C++
6   Date:      $Date: 2006/01/17 19:15:48 $
7   Version:   $Revision: 1.4 $
8
9   Copyright (c) Insight Software Consortium. All rights reserved.
10   See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
11
12   Portions of this code are covered under the VTK copyright.
13   See VTKCopyright.txt or http://www.kitware.com/VTKCopyright.htm for details.
14
15      This software is distributed WITHOUT ANY WARRANTY; without even 
16      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
17 IND *****PURPOSE.  See the above copyright notices for more information.
18
19 =========================================================================*/
20 #ifndef __itkSpatialOrientation_h
21 #define __itkSpatialOrientation_h
22
23 namespace itk
24 {
25 namespace SpatialOrientation
26 {
27 IND ****//  Coordinate orientation codes have a place-value organization such that 
28 IND ****//  an ImageDimension-al sequence of subcodes says both which varies fastest
29 LEN,IND ****//  through which varies slowest, but also which end of the frame of reference
30 LEN,IND ****//  is considered zero for each of the coordinates.  For example, 'RIP' means
31 LEN,IND ****//  Right to Left varies fastest, then Inferior to Superior, and Posterior to
32 IND ****//  Anterior varies the slowest.  
33 IND,IND ****typedef enum {
34 IND ********ITK_COORDINATE_UNKNOWN=0,
35 IND ********ITK_COORDINATE_Right=2,
36 IND ********ITK_COORDINATE_Left=3,
37 IND ********ITK_COORDINATE_Posterior=4,    //back
38 IND ********ITK_COORDINATE_Anterior=5,     //front
39 IND ********ITK_COORDINATE_Inferior=8,     //below
40 IND ********ITK_COORDINATE_Superior=9      //above
41 IND ************// ITK_COORDINATE_Historical=16,
42 IND ************// ITK_COORDINATE_Future=17
43 IND ****} CoordinateTerms;
44
45 IND,IND ****typedef enum {
46 LEN,IND ********// These code place values have to be far enough apart to separate the CoordinateTerms above.
47 LEN,IND ********// However, if we added History/Future direction in time, we would need at least 5 bits per.
48 IND ********ITK_COORDINATE_PrimaryMinor=0,
49 IND ********ITK_COORDINATE_SecondaryMinor=8,
50 IND ********ITK_COORDINATE_TertiaryMinor=16
51 IND ************// Majorness is in terms of rank-minor because a 
52 LEN,IND ************// fourth dimension, time, would be even More major than the PrimaryMajor==TertiaryMinor.
53 IND ************// ITK_COORDINATE_QuaternaryMinor=24
54 IND ****} CoordinateMajornessTerms;
55 LEN,IND ****// Adding time IN GENERAL would make these 8 x 6 = 48 triples into 16 x 24 = 384 4-tuples.
56 LEN,IND ****// A general fourth dimension would need a unique pair of letters to add to the code;
57 LEN,IND ****// Maybe use H and F, from History to Future? Maybe use 48 x 2 with time ALWAYS highest 
58 LEN,IND ****// order, or 48 x 2 x 2, with 3-space always highest or lowest order?  Multispectra might be 
59 LEN,IND ****// co-registered and pieced together.... PD-T2 interleaving of slices is handled with choosing
60 IND ****// which spectrum to load via the prototypical file name. 
61 IND,IND ****typedef enum {
62 LEN,IND ********ITK_COORDINATE_ORIENTATION_RIP = (ITK_COORDINATE_Right     << ITK_COORDINATE_PrimaryMinor) 
63 IND ************+ (ITK_COORDINATE_Inferior  << ITK_COORDINATE_SecondaryMinor) 
64 IND ************+ (ITK_COORDINATE_Posterior << ITK_COORDINATE_TertiaryMinor),
65 LEN,IND ********ITK_COORDINATE_ORIENTATION_LIP = (ITK_COORDINATE_Left      << ITK_COORDINATE_PrimaryMinor) 
66 IND ************+ (ITK_COORDINATE_Inferior  << ITK_COORDINATE_SecondaryMinor) 
67 IND ************+ (ITK_COORDINATE_Posterior << ITK_COORDINATE_TertiaryMinor),
68 LEN,IND ********ITK_COORDINATE_ORIENTATION_RSP = (ITK_COORDINATE_Right     << ITK_COORDINATE_PrimaryMinor) 
69 IND ************+ (ITK_COORDINATE_Superior  << ITK_COORDINATE_SecondaryMinor) 
70 IND ************+ (ITK_COORDINATE_Posterior << ITK_COORDINATE_TertiaryMinor),
71 LEN,IND ********ITK_COORDINATE_ORIENTATION_LSP = (ITK_COORDINATE_Left      << ITK_COORDINATE_PrimaryMinor) 
72 IND ************+ (ITK_COORDINATE_Superior  << ITK_COORDINATE_SecondaryMinor) 
73 IND ************+ (ITK_COORDINATE_Posterior << ITK_COORDINATE_TertiaryMinor),
74 LEN,IND ********ITK_COORDINATE_ORIENTATION_RIA = (ITK_COORDINATE_Right     << ITK_COORDINATE_PrimaryMinor) 
75 IND ************+ (ITK_COORDINATE_Inferior  << ITK_COORDINATE_SecondaryMinor) 
76 IND ************+ (ITK_COORDINATE_Anterior  << ITK_COORDINATE_TertiaryMinor),
77 LEN,IND ********ITK_COORDINATE_ORIENTATION_LIA = (ITK_COORDINATE_Left      << ITK_COORDINATE_PrimaryMinor) 
78 IND ************+ (ITK_COORDINATE_Inferior  << ITK_COORDINATE_SecondaryMinor) 
79 IND ************+ (ITK_COORDINATE_Anterior  << ITK_COORDINATE_TertiaryMinor),
80 LEN,IND ********ITK_COORDINATE_ORIENTATION_RSA = (ITK_COORDINATE_Right     << ITK_COORDINATE_PrimaryMinor) 
81 IND ************+ (ITK_COORDINATE_Superior  << ITK_COORDINATE_SecondaryMinor) 
82 IND ************+ (ITK_COORDINATE_Anterior  << ITK_COORDINATE_TertiaryMinor),
83 LEN,IND ********ITK_COORDINATE_ORIENTATION_LSA = (ITK_COORDINATE_Left      << ITK_COORDINATE_PrimaryMinor) 
84 IND ************+ (ITK_COORDINATE_Superior  << ITK_COORDINATE_SecondaryMinor) 
85 IND ************+ (ITK_COORDINATE_Anterior  << ITK_COORDINATE_TertiaryMinor),
86
87 LEN,IND ********ITK_COORDINATE_ORIENTATION_IRP = (ITK_COORDINATE_Inferior  << ITK_COORDINATE_PrimaryMinor) 
88 IND ************+ (ITK_COORDINATE_Right     << ITK_COORDINATE_SecondaryMinor) 
89 IND ************+ (ITK_COORDINATE_Posterior << ITK_COORDINATE_TertiaryMinor),
90 LEN,IND ********ITK_COORDINATE_ORIENTATION_ILP = (ITK_COORDINATE_Inferior  << ITK_COORDINATE_PrimaryMinor) 
91 IND ************+ (ITK_COORDINATE_Left      << ITK_COORDINATE_SecondaryMinor) 
92 IND ************+ (ITK_COORDINATE_Posterior << ITK_COORDINATE_TertiaryMinor),
93 LEN,IND ********ITK_COORDINATE_ORIENTATION_SRP = (ITK_COORDINATE_Superior  << ITK_COORDINATE_PrimaryMinor) 
94 IND ************+ (ITK_COORDINATE_Right     << ITK_COORDINATE_SecondaryMinor) 
95 IND ************+ (ITK_COORDINATE_Posterior << ITK_COORDINATE_TertiaryMinor),
96 LEN,IND ********ITK_COORDINATE_ORIENTATION_SLP = (ITK_COORDINATE_Superior  << ITK_COORDINATE_PrimaryMinor) 
97 IND ************+ (ITK_COORDINATE_Left      << ITK_COORDINATE_SecondaryMinor) 
98 IND ************+ (ITK_COORDINATE_Posterior << ITK_COORDINATE_TertiaryMinor),
99 LEN,IND ********ITK_COORDINATE_ORIENTATION_IRA = (ITK_COORDINATE_Inferior  << ITK_COORDINATE_PrimaryMinor) 
100 IND ************+ (ITK_COORDINATE_Right     << ITK_COORDINATE_SecondaryMinor) 
101 IND ************+ (ITK_COORDINATE_Anterior  << ITK_COORDINATE_TertiaryMinor),
102 LEN,IND ********ITK_COORDINATE_ORIENTATION_ILA = (ITK_COORDINATE_Inferior  << ITK_COORDINATE_PrimaryMinor) 
103 IND ************+ (ITK_COORDINATE_Left      << ITK_COORDINATE_SecondaryMinor) 
104 IND ************+ (ITK_COORDINATE_Anterior  << ITK_COORDINATE_TertiaryMinor),
105 LEN,IND ********ITK_COORDINATE_ORIENTATION_SRA = (ITK_COORDINATE_Superior  << ITK_COORDINATE_PrimaryMinor) 
106 IND ************+ (ITK_COORDINATE_Right     << ITK_COORDINATE_SecondaryMinor) 
107 IND ************+ (ITK_COORDINATE_Anterior  << ITK_COORDINATE_TertiaryMinor),
108 LEN,IND ********ITK_COORDINATE_ORIENTATION_SLA = (ITK_COORDINATE_Superior  << ITK_COORDINATE_PrimaryMinor) 
109 IND ************+ (ITK_COORDINATE_Left      << ITK_COORDINATE_SecondaryMinor) 
110 IND ************+ (ITK_COORDINATE_Anterior  << ITK_COORDINATE_TertiaryMinor),
111
112 LEN,IND ********ITK_COORDINATE_ORIENTATION_RPI = (ITK_COORDINATE_Right     << ITK_COORDINATE_PrimaryMinor) 
113 IND ************+ (ITK_COORDINATE_Posterior << ITK_COORDINATE_SecondaryMinor) 
114 IND ************+ (ITK_COORDINATE_Inferior  << ITK_COORDINATE_TertiaryMinor),
115 LEN,IND ********ITK_COORDINATE_ORIENTATION_LPI = (ITK_COORDINATE_Left      << ITK_COORDINATE_PrimaryMinor) 
116 IND ************+ (ITK_COORDINATE_Posterior << ITK_COORDINATE_SecondaryMinor) 
117 IND ************+ (ITK_COORDINATE_Inferior  << ITK_COORDINATE_TertiaryMinor),
118 LEN,IND ********ITK_COORDINATE_ORIENTATION_RAI = (ITK_COORDINATE_Right     << ITK_COORDINATE_PrimaryMinor) 
119 IND ************+ (ITK_COORDINATE_Anterior  << ITK_COORDINATE_SecondaryMinor) 
120 IND ************+ (ITK_COORDINATE_Inferior  << ITK_COORDINATE_TertiaryMinor),
121 LEN,IND ********ITK_COORDINATE_ORIENTATION_LAI = (ITK_COORDINATE_Left      << ITK_COORDINATE_PrimaryMinor) 
122 IND ************+ (ITK_COORDINATE_Anterior  << ITK_COORDINATE_SecondaryMinor) 
123 IND ************+ (ITK_COORDINATE_Inferior  << ITK_COORDINATE_TertiaryMinor),
124 LEN,IND ********ITK_COORDINATE_ORIENTATION_RPS = (ITK_COORDINATE_Right     << ITK_COORDINATE_PrimaryMinor) 
125 IND ************+ (ITK_COORDINATE_Posterior << ITK_COORDINATE_SecondaryMinor) 
126 IND ************+ (ITK_COORDINATE_Superior  << ITK_COORDINATE_TertiaryMinor),
127 LEN,IND ********ITK_COORDINATE_ORIENTATION_LPS = (ITK_COORDINATE_Left      << ITK_COORDINATE_PrimaryMinor) 
128 IND ************+ (ITK_COORDINATE_Posterior << ITK_COORDINATE_SecondaryMinor) 
129 IND ************+ (ITK_COORDINATE_Superior  << ITK_COORDINATE_TertiaryMinor),
130 LEN,IND ********ITK_COORDINATE_ORIENTATION_RAS = (ITK_COORDINATE_Right     << ITK_COORDINATE_PrimaryMinor) 
131 IND ************+ (ITK_COORDINATE_Anterior  << ITK_COORDINATE_SecondaryMinor) 
132 IND ************+ (ITK_COORDINATE_Superior  << ITK_COORDINATE_TertiaryMinor),
133 LEN,IND ********ITK_COORDINATE_ORIENTATION_LAS = (ITK_COORDINATE_Left      << ITK_COORDINATE_PrimaryMinor) 
134 IND ************+ (ITK_COORDINATE_Anterior  << ITK_COORDINATE_SecondaryMinor) 
135 IND ************+ (ITK_COORDINATE_Superior  << ITK_COORDINATE_TertiaryMinor),
136
137 LEN,IND ********ITK_COORDINATE_ORIENTATION_PRI = (ITK_COORDINATE_Posterior << ITK_COORDINATE_PrimaryMinor) 
138 IND ************+ (ITK_COORDINATE_Right     << ITK_COORDINATE_SecondaryMinor) 
139 IND ************+ (ITK_COORDINATE_Inferior  << ITK_COORDINATE_TertiaryMinor),
140 LEN,IND ********ITK_COORDINATE_ORIENTATION_PLI = (ITK_COORDINATE_Posterior << ITK_COORDINATE_PrimaryMinor) 
141 IND ************+ (ITK_COORDINATE_Left      << ITK_COORDINATE_SecondaryMinor) 
142 IND ************+ (ITK_COORDINATE_Inferior  << ITK_COORDINATE_TertiaryMinor),
143 LEN,IND ********ITK_COORDINATE_ORIENTATION_ARI = (ITK_COORDINATE_Anterior  << ITK_COORDINATE_PrimaryMinor) 
144 IND ************+ (ITK_COORDINATE_Right     << ITK_COORDINATE_SecondaryMinor) 
145 IND ************+ (ITK_COORDINATE_Inferior  << ITK_COORDINATE_TertiaryMinor),
146 LEN,IND ********ITK_COORDINATE_ORIENTATION_ALI = (ITK_COORDINATE_Anterior  << ITK_COORDINATE_PrimaryMinor) 
147 IND ************+ (ITK_COORDINATE_Left      << ITK_COORDINATE_SecondaryMinor) 
148 IND ************+ (ITK_COORDINATE_Inferior  << ITK_COORDINATE_TertiaryMinor),
149 LEN,IND ********ITK_COORDINATE_ORIENTATION_PRS = (ITK_COORDINATE_Posterior << ITK_COORDINATE_PrimaryMinor) 
150 IND ************+ (ITK_COORDINATE_Right     << ITK_COORDINATE_SecondaryMinor) 
151 IND ************+ (ITK_COORDINATE_Superior  << ITK_COORDINATE_TertiaryMinor),
152 LEN,IND ********ITK_COORDINATE_ORIENTATION_PLS = (ITK_COORDINATE_Posterior << ITK_COORDINATE_PrimaryMinor) 
153 IND ************+ (ITK_COORDINATE_Left      << ITK_COORDINATE_SecondaryMinor) 
154 IND ************+ (ITK_COORDINATE_Superior  << ITK_COORDINATE_TertiaryMinor),
155 LEN,IND ********ITK_COORDINATE_ORIENTATION_ARS = (ITK_COORDINATE_Anterior  << ITK_COORDINATE_PrimaryMinor) 
156 IND ************+ (ITK_COORDINATE_Right     << ITK_COORDINATE_SecondaryMinor) 
157 IND ************+ (ITK_COORDINATE_Superior  << ITK_COORDINATE_TertiaryMinor),
158 LEN,IND ********ITK_COORDINATE_ORIENTATION_ALS = (ITK_COORDINATE_Anterior  << ITK_COORDINATE_PrimaryMinor) 
159 IND ************+ (ITK_COORDINATE_Left      << ITK_COORDINATE_SecondaryMinor) 
160 IND ************+ (ITK_COORDINATE_Superior  << ITK_COORDINATE_TertiaryMinor),
161
162 LEN,IND ********ITK_COORDINATE_ORIENTATION_IPR = (ITK_COORDINATE_Inferior  << ITK_COORDINATE_PrimaryMinor) 
163 IND ************+ (ITK_COORDINATE_Posterior << ITK_COORDINATE_SecondaryMinor) 
164 IND ************+ (ITK_COORDINATE_Right     << ITK_COORDINATE_TertiaryMinor),
165 LEN,IND ********ITK_COORDINATE_ORIENTATION_SPR = (ITK_COORDINATE_Superior  << ITK_COORDINATE_PrimaryMinor) 
166 IND ************+ (ITK_COORDINATE_Posterior << ITK_COORDINATE_SecondaryMinor) 
167 IND ************+ (ITK_COORDINATE_Right     << ITK_COORDINATE_TertiaryMinor),
168 LEN,IND ********ITK_COORDINATE_ORIENTATION_IAR = (ITK_COORDINATE_Inferior  << ITK_COORDINATE_PrimaryMinor) 
169 IND ************+ (ITK_COORDINATE_Anterior  << ITK_COORDINATE_SecondaryMinor) 
170 IND ************+ (ITK_COORDINATE_Right     << ITK_COORDINATE_TertiaryMinor),
171 LEN,IND ********ITK_COORDINATE_ORIENTATION_SAR = (ITK_COORDINATE_Superior  << ITK_COORDINATE_PrimaryMinor) 
172 IND ************+ (ITK_COORDINATE_Anterior  << ITK_COORDINATE_SecondaryMinor) 
173 IND ************+ (ITK_COORDINATE_Right     << ITK_COORDINATE_TertiaryMinor),
174 LEN,IND ********ITK_COORDINATE_ORIENTATION_IPL = (ITK_COORDINATE_Inferior  << ITK_COORDINATE_PrimaryMinor) 
175 IND ************+ (ITK_COORDINATE_Posterior << ITK_COORDINATE_SecondaryMinor) 
176 IND ************+ (ITK_COORDINATE_Left      << ITK_COORDINATE_TertiaryMinor),
177 LEN,IND ********ITK_COORDINATE_ORIENTATION_SPL = (ITK_COORDINATE_Superior  << ITK_COORDINATE_PrimaryMinor) 
178 IND ************+ (ITK_COORDINATE_Posterior << ITK_COORDINATE_SecondaryMinor) 
179 IND ************+ (ITK_COORDINATE_Left      << ITK_COORDINATE_TertiaryMinor),
180 LEN,IND ********ITK_COORDINATE_ORIENTATION_IAL = (ITK_COORDINATE_Inferior  << ITK_COORDINATE_PrimaryMinor) 
181 IND ************+ (ITK_COORDINATE_Anterior  << ITK_COORDINATE_SecondaryMinor) 
182 IND ************+ (ITK_COORDINATE_Left      << ITK_COORDINATE_TertiaryMinor),
183 LEN,IND ********ITK_COORDINATE_ORIENTATION_SAL = (ITK_COORDINATE_Superior  << ITK_COORDINATE_PrimaryMinor) 
184 IND ************+ (ITK_COORDINATE_Anterior  << ITK_COORDINATE_SecondaryMinor) 
185 IND ************+ (ITK_COORDINATE_Left      << ITK_COORDINATE_TertiaryMinor),
186
187 LEN,IND ********ITK_COORDINATE_ORIENTATION_PIR = (ITK_COORDINATE_Posterior << ITK_COORDINATE_PrimaryMinor) 
188 IND ************+ (ITK_COORDINATE_Inferior  << ITK_COORDINATE_SecondaryMinor) 
189 IND ************+ (ITK_COORDINATE_Right     << ITK_COORDINATE_TertiaryMinor),
190 LEN,IND ********ITK_COORDINATE_ORIENTATION_PSR = (ITK_COORDINATE_Posterior << ITK_COORDINATE_PrimaryMinor) 
191 IND ************+ (ITK_COORDINATE_Superior  << ITK_COORDINATE_SecondaryMinor) 
192 IND ************+ (ITK_COORDINATE_Right     << ITK_COORDINATE_TertiaryMinor),
193 LEN,IND ********ITK_COORDINATE_ORIENTATION_AIR = (ITK_COORDINATE_Anterior  << ITK_COORDINATE_PrimaryMinor) 
194 IND ************+ (ITK_COORDINATE_Inferior  << ITK_COORDINATE_SecondaryMinor) 
195 IND ************+ (ITK_COORDINATE_Right     << ITK_COORDINATE_TertiaryMinor),
196 LEN,IND ********ITK_COORDINATE_ORIENTATION_ASR = (ITK_COORDINATE_Anterior  << ITK_COORDINATE_PrimaryMinor) 
197 IND ************+ (ITK_COORDINATE_Superior  << ITK_COORDINATE_SecondaryMinor) 
198 IND ************+ (ITK_COORDINATE_Right     << ITK_COORDINATE_TertiaryMinor),
199 LEN,IND ********ITK_COORDINATE_ORIENTATION_PIL = (ITK_COORDINATE_Posterior << ITK_COORDINATE_PrimaryMinor) 
200 IND ************+ (ITK_COORDINATE_Inferior  << ITK_COORDINATE_SecondaryMinor) 
201 IND ************+ (ITK_COORDINATE_Left      << ITK_COORDINATE_TertiaryMinor),
202 LEN,IND ********ITK_COORDINATE_ORIENTATION_PSL = (ITK_COORDINATE_Posterior << ITK_COORDINATE_PrimaryMinor) 
203 IND ************+ (ITK_COORDINATE_Superior  << ITK_COORDINATE_SecondaryMinor) 
204 IND ************+ (ITK_COORDINATE_Left      << ITK_COORDINATE_TertiaryMinor),
205 LEN,IND ********ITK_COORDINATE_ORIENTATION_AIL = (ITK_COORDINATE_Anterior  << ITK_COORDINATE_PrimaryMinor) 
206 IND ************+ (ITK_COORDINATE_Inferior  << ITK_COORDINATE_SecondaryMinor) 
207 IND ************+ (ITK_COORDINATE_Left      << ITK_COORDINATE_TertiaryMinor),
208 LEN,IND ********ITK_COORDINATE_ORIENTATION_ASL = (ITK_COORDINATE_Anterior  << ITK_COORDINATE_PrimaryMinor) 
209 IND ************+ (ITK_COORDINATE_Superior  << ITK_COORDINATE_SecondaryMinor) 
210 IND ************+ (ITK_COORDINATE_Left      << ITK_COORDINATE_TertiaryMinor)
211 IND ****} ValidCoordinateOrientationFlags;
212 // ^^^
213 // |||
214 // ||\Sequential indexes are separated by (planes=rows*columns) memory locations
215 LEN // |\Sequential indexes are separated by rows memory locations (sweep out a plane)
216 // \Sequential indexes are adjacent memory locations (sweep out a row)
217
218 #ifndef __TEMPORARILY_INCLUDED_IN_COMPILATIONS__
219 IND,IND **typedef enum {
220 LEN,IND ****ITK_ORIGIN_IRP  =0,        /**< Denotes a zeroCorner (image origin) is Inferior Right Posterior */
221 LEN,IND ****ITK_ORIGIN_IRA  =1,        /**< Denotes a zeroCorner (image origin) is Inferior Right Anterior */
222 LEN,IND ****ITK_ORIGIN_ILP  =2,        /**< Denotes a zeroCorner (image origin) is Inferior Left Posterior */
223 LEN,IND ****ITK_ORIGIN_ILA  =3,        /**< Denotes a zeroCorner (image origin) is Inferior Left Anterior */
224 LEN,IND ****ITK_ORIGIN_SRP  =4,        /**< Denotes a zeroCorner (image origin) is Superior Right Posterior */
225 LEN,IND ****ITK_ORIGIN_SRA  =5,        /**< Denotes a zeroCorner (image origin) is Superior Right Anterior */
226 LEN,IND ****ITK_ORIGIN_SLP  =6,        /**< Denotes a zeroCorner (image origin) is Superior Left Posterior */
227 LEN,IND ****ITK_ORIGIN_SLA  =7         /**< Denotes a zeroCorner (image origin) is Superior Left Anterior */
228 IND **} ValidOriginFlags;
229 #endif
230
231 // end of namespace SpatialOrientation
232 // end namespace itk
233
234 #endif
235
236 EOF

Generated by KWStyle 1.0b on Tuesday January,17 at 02:14:48PM
© Kitware Inc.