ITK  5.0.0
Insight Segmentation and Registration Toolkit
itkSpatialOrientation.h
Go to the documentation of this file.
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 /*=========================================================================
19  *
20  * Portions of this file are subject to the VTK Toolkit Version 3 copyright.
21  *
22  * Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
23  *
24  * For complete copyright, license and disclaimer of warranty information
25  * please refer to the NOTICE file at the top of the ITK source tree.
26  *
27  *=========================================================================*/
28 #ifndef itkSpatialOrientation_h
29 #define itkSpatialOrientation_h
30 
31 namespace itk
32 {
33 namespace SpatialOrientation
34 {
35 // Coordinate orientation codes have a place-value organization such that
36 // an ImageDimension-al sequence of subcodes says both which varies fastest
37 // through which varies slowest, but also which end of the frame of
38 // reference
39 // is considered zero for each of the coordinates. For example, 'RIP'
40 // means
41 // Right to Left varies fastest, then Inferior to Superior, and Posterior
42 // to
43 // Anterior varies the slowest.
44 typedef enum {
52  // ITK_COORDINATE_Historical=16,
53  // ITK_COORDINATE_Future=17
55 
56 typedef enum {
57  // These code place values have to be far enough apart to
58  // separate the CoordinateTerms above.
59  // However, if we added History/Future direction in time,
60  // we would need at least 5 bits per.
64  // Majorness is in terms of rank-minor because
65  // a
66  // fourth dimension, time, would be even More
67  // major than the
68  // PrimaryMajor==TertiaryMinor.
69  // ITK_COORDINATE_QuaternaryMinor=24
71 // Adding time IN GENERAL would make these 8 x 6 = 48 triples into 16
72 // x 24 = 384 4-tuples.
73 // A general fourth dimension would need a unique pair of letters to
74 // add to the code;
75 // Maybe use H and F, from History to Future? Maybe use 48 x 2 with
76 // time ALWAYS highest
77 // order, or 48 x 2 x 2, with 3-space always highest or lowest order?
78 // Multispectra might be
79 // co-registered and pieced together.... PD-T2 interleaving of
80 // slices is handled with choosing
81 // which spectrum to load via the prototypical file name.
82 typedef enum {
116 
149 
182 
215 
248 
282 // ^^^
283 // |||
284 // ||\Sequential indexes are separated by (planes=rows*columns) memory
285 // locations
286 // |\Sequential indexes are separated by rows memory locations (sweep out
287 // a plane)
288 // \Sequential indexes are adjacent memory locations (sweep out a row)
289 
290 #ifndef __TEMPORARILY_INCLUDED_IN_COMPILATIONS__
291 typedef enum {
293  /* is Inferior Right Posterior */
294 
296  /* is Inferior Right Anterior */
297 
299  /* is Inferior Left Posterior */
300 
302  /* is Inferior Left Anterior */
303 
305  /* is Superior Right Posterior */
306 
308  /* is Superior Right Anterior */
309 
311  /* is Superior Left Posterior */
312 
314  /* is Superior Left Anterior */
316 #endif
317 } // end of namespace SpatialOrientation
318 } // end namespace itk
319 
320 #endif