Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itkSpatialOrientation.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Insight Segmentation & Registration Toolkit 00004 Module: $RCSfile: itkSpatialOrientation.h,v $ 00005 Language: C++ 00006 Date: $Date: 2004/01/06 22:42:19 $ 00007 Version: $Revision: 1.1 $ 00008 00009 Copyright (c) Insight Software Consortium. All rights reserved. 00010 See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details. 00011 00012 Portions of this code are covered under the VTK copyright. 00013 See VTKCopyright.txt or http://www.kitware.com/VTKCopyright.htm for details. 00014 00015 This software is distributed WITHOUT ANY WARRANTY; without even 00016 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00017 PURPOSE. See the above copyright notices for more information. 00018 00019 =========================================================================*/ 00020 #ifndef __itkSpatialOrientation_h 00021 #define __itkSpatialOrientation_h 00022 00023 namespace itk 00024 { 00025 namespace SpatialOrientation 00026 { 00027 // Coordinate orientation codes have a place-value organization such that 00028 // an ImageDimension-al sequence of subcodes says both which varies fastest 00029 // through which varies slowest, but also which end of the frame of reference 00030 // is considered zero for each of the coordinates. For example, 'RIP' means 00031 // Right to Left varies fastest, then Inferior to Superior, and Posterior to 00032 // Anterior varies the slowest. 00033 typedef enum { 00034 ITK_COORDINATE_Right=2, 00035 ITK_COORDINATE_Left=3, 00036 ITK_COORDINATE_Posterior=4, //back 00037 ITK_COORDINATE_Anterior=5, //front 00038 ITK_COORDINATE_Inferior=8, //below 00039 ITK_COORDINATE_Superior=9 //above 00040 // ITK_COORDINATE_Historical=16, 00041 // ITK_COORDINATE_Future=17 00042 } CoordinateTerms; 00043 00044 typedef enum { 00045 // These code place values have to be far enough apart to separate the CoordinateTerms above. 00046 // However, if we added History/Future direction in time, we would need at least 5 bits per. 00047 ITK_COORDINATE_PrimaryMinor=0, 00048 ITK_COORDINATE_SecondaryMinor=8, 00049 ITK_COORDINATE_TertiaryMinor=16 00050 // Majorness is in terms of rank-minor because a 00051 // fourth dimension, time, would be even More major than the PrimaryMajor==TertiaryMinor. 00052 // ITK_COORDINATE_QuaternaryMinor=24 00053 } CoordinateMajornessTerms; 00054 // Adding time IN GENERAL would make these 8 x 6 = 48 triples into 16 x 24 = 384 4-tuples. 00055 // A general fourth dimension would need a unique pair of letters to add to the code; 00056 // Maybe use H and F, from History to Future? Maybe use 48 x 2 with time ALWAYS highest 00057 // order, or 48 x 2 x 2, with 3-space always highest or lowest order? Multispectra might be 00058 // co-registered and pieced together.... PD-T2 interleaving of slices is handled with choosing 00059 // which spectrum to load via the prototypical file name. 00060 typedef enum { 00061 ITK_COORDINATE_ORIENTATION_RIP = (ITK_COORDINATE_Right << ITK_COORDINATE_PrimaryMinor) 00062 + (ITK_COORDINATE_Inferior << ITK_COORDINATE_SecondaryMinor) 00063 + (ITK_COORDINATE_Posterior << ITK_COORDINATE_TertiaryMinor), 00064 ITK_COORDINATE_ORIENTATION_LIP = (ITK_COORDINATE_Left << ITK_COORDINATE_PrimaryMinor) 00065 + (ITK_COORDINATE_Inferior << ITK_COORDINATE_SecondaryMinor) 00066 + (ITK_COORDINATE_Posterior << ITK_COORDINATE_TertiaryMinor), 00067 ITK_COORDINATE_ORIENTATION_RSP = (ITK_COORDINATE_Right << ITK_COORDINATE_PrimaryMinor) 00068 + (ITK_COORDINATE_Superior << ITK_COORDINATE_SecondaryMinor) 00069 + (ITK_COORDINATE_Posterior << ITK_COORDINATE_TertiaryMinor), 00070 ITK_COORDINATE_ORIENTATION_LSP = (ITK_COORDINATE_Left << ITK_COORDINATE_PrimaryMinor) 00071 + (ITK_COORDINATE_Superior << ITK_COORDINATE_SecondaryMinor) 00072 + (ITK_COORDINATE_Posterior << ITK_COORDINATE_TertiaryMinor), 00073 ITK_COORDINATE_ORIENTATION_RIA = (ITK_COORDINATE_Right << ITK_COORDINATE_PrimaryMinor) 00074 + (ITK_COORDINATE_Inferior << ITK_COORDINATE_SecondaryMinor) 00075 + (ITK_COORDINATE_Anterior << ITK_COORDINATE_TertiaryMinor), 00076 ITK_COORDINATE_ORIENTATION_LIA = (ITK_COORDINATE_Left << ITK_COORDINATE_PrimaryMinor) 00077 + (ITK_COORDINATE_Inferior << ITK_COORDINATE_SecondaryMinor) 00078 + (ITK_COORDINATE_Anterior << ITK_COORDINATE_TertiaryMinor), 00079 ITK_COORDINATE_ORIENTATION_RSA = (ITK_COORDINATE_Right << ITK_COORDINATE_PrimaryMinor) 00080 + (ITK_COORDINATE_Superior << ITK_COORDINATE_SecondaryMinor) 00081 + (ITK_COORDINATE_Anterior << ITK_COORDINATE_TertiaryMinor), 00082 ITK_COORDINATE_ORIENTATION_LSA = (ITK_COORDINATE_Left << ITK_COORDINATE_PrimaryMinor) 00083 + (ITK_COORDINATE_Superior << ITK_COORDINATE_SecondaryMinor) 00084 + (ITK_COORDINATE_Anterior << ITK_COORDINATE_TertiaryMinor), 00085 00086 ITK_COORDINATE_ORIENTATION_IRP = (ITK_COORDINATE_Inferior << ITK_COORDINATE_PrimaryMinor) 00087 + (ITK_COORDINATE_Right << ITK_COORDINATE_SecondaryMinor) 00088 + (ITK_COORDINATE_Posterior << ITK_COORDINATE_TertiaryMinor), 00089 ITK_COORDINATE_ORIENTATION_ILP = (ITK_COORDINATE_Inferior << ITK_COORDINATE_PrimaryMinor) 00090 + (ITK_COORDINATE_Left << ITK_COORDINATE_SecondaryMinor) 00091 + (ITK_COORDINATE_Posterior << ITK_COORDINATE_TertiaryMinor), 00092 ITK_COORDINATE_ORIENTATION_SRP = (ITK_COORDINATE_Superior << ITK_COORDINATE_PrimaryMinor) 00093 + (ITK_COORDINATE_Right << ITK_COORDINATE_SecondaryMinor) 00094 + (ITK_COORDINATE_Posterior << ITK_COORDINATE_TertiaryMinor), 00095 ITK_COORDINATE_ORIENTATION_SLP = (ITK_COORDINATE_Superior << ITK_COORDINATE_PrimaryMinor) 00096 + (ITK_COORDINATE_Left << ITK_COORDINATE_SecondaryMinor) 00097 + (ITK_COORDINATE_Posterior << ITK_COORDINATE_TertiaryMinor), 00098 ITK_COORDINATE_ORIENTATION_IRA = (ITK_COORDINATE_Inferior << ITK_COORDINATE_PrimaryMinor) 00099 + (ITK_COORDINATE_Right << ITK_COORDINATE_SecondaryMinor) 00100 + (ITK_COORDINATE_Anterior << ITK_COORDINATE_TertiaryMinor), 00101 ITK_COORDINATE_ORIENTATION_ILA = (ITK_COORDINATE_Inferior << ITK_COORDINATE_PrimaryMinor) 00102 + (ITK_COORDINATE_Left << ITK_COORDINATE_SecondaryMinor) 00103 + (ITK_COORDINATE_Anterior << ITK_COORDINATE_TertiaryMinor), 00104 ITK_COORDINATE_ORIENTATION_SRA = (ITK_COORDINATE_Superior << ITK_COORDINATE_PrimaryMinor) 00105 + (ITK_COORDINATE_Right << ITK_COORDINATE_SecondaryMinor) 00106 + (ITK_COORDINATE_Anterior << ITK_COORDINATE_TertiaryMinor), 00107 ITK_COORDINATE_ORIENTATION_SLA = (ITK_COORDINATE_Superior << ITK_COORDINATE_PrimaryMinor) 00108 + (ITK_COORDINATE_Left << ITK_COORDINATE_SecondaryMinor) 00109 + (ITK_COORDINATE_Anterior << ITK_COORDINATE_TertiaryMinor), 00110 00111 ITK_COORDINATE_ORIENTATION_RPI = (ITK_COORDINATE_Right << ITK_COORDINATE_PrimaryMinor) 00112 + (ITK_COORDINATE_Posterior << ITK_COORDINATE_SecondaryMinor) 00113 + (ITK_COORDINATE_Inferior << ITK_COORDINATE_TertiaryMinor), 00114 ITK_COORDINATE_ORIENTATION_LPI = (ITK_COORDINATE_Left << ITK_COORDINATE_PrimaryMinor) 00115 + (ITK_COORDINATE_Posterior << ITK_COORDINATE_SecondaryMinor) 00116 + (ITK_COORDINATE_Inferior << ITK_COORDINATE_TertiaryMinor), 00117 ITK_COORDINATE_ORIENTATION_RAI = (ITK_COORDINATE_Right << ITK_COORDINATE_PrimaryMinor) 00118 + (ITK_COORDINATE_Anterior << ITK_COORDINATE_SecondaryMinor) 00119 + (ITK_COORDINATE_Inferior << ITK_COORDINATE_TertiaryMinor), 00120 ITK_COORDINATE_ORIENTATION_LAI = (ITK_COORDINATE_Left << ITK_COORDINATE_PrimaryMinor) 00121 + (ITK_COORDINATE_Anterior << ITK_COORDINATE_SecondaryMinor) 00122 + (ITK_COORDINATE_Inferior << ITK_COORDINATE_TertiaryMinor), 00123 ITK_COORDINATE_ORIENTATION_RPS = (ITK_COORDINATE_Right << ITK_COORDINATE_PrimaryMinor) 00124 + (ITK_COORDINATE_Posterior << ITK_COORDINATE_SecondaryMinor) 00125 + (ITK_COORDINATE_Superior << ITK_COORDINATE_TertiaryMinor), 00126 ITK_COORDINATE_ORIENTATION_LPS = (ITK_COORDINATE_Left << ITK_COORDINATE_PrimaryMinor) 00127 + (ITK_COORDINATE_Posterior << ITK_COORDINATE_SecondaryMinor) 00128 + (ITK_COORDINATE_Superior << ITK_COORDINATE_TertiaryMinor), 00129 ITK_COORDINATE_ORIENTATION_RAS = (ITK_COORDINATE_Right << ITK_COORDINATE_PrimaryMinor) 00130 + (ITK_COORDINATE_Anterior << ITK_COORDINATE_SecondaryMinor) 00131 + (ITK_COORDINATE_Superior << ITK_COORDINATE_TertiaryMinor), 00132 ITK_COORDINATE_ORIENTATION_LAS = (ITK_COORDINATE_Left << ITK_COORDINATE_PrimaryMinor) 00133 + (ITK_COORDINATE_Anterior << ITK_COORDINATE_SecondaryMinor) 00134 + (ITK_COORDINATE_Superior << ITK_COORDINATE_TertiaryMinor), 00135 00136 ITK_COORDINATE_ORIENTATION_PRI = (ITK_COORDINATE_Posterior << ITK_COORDINATE_PrimaryMinor) 00137 + (ITK_COORDINATE_Right << ITK_COORDINATE_SecondaryMinor) 00138 + (ITK_COORDINATE_Inferior << ITK_COORDINATE_TertiaryMinor), 00139 ITK_COORDINATE_ORIENTATION_PLI = (ITK_COORDINATE_Posterior << ITK_COORDINATE_PrimaryMinor) 00140 + (ITK_COORDINATE_Left << ITK_COORDINATE_SecondaryMinor) 00141 + (ITK_COORDINATE_Inferior << ITK_COORDINATE_TertiaryMinor), 00142 ITK_COORDINATE_ORIENTATION_ARI = (ITK_COORDINATE_Anterior << ITK_COORDINATE_PrimaryMinor) 00143 + (ITK_COORDINATE_Right << ITK_COORDINATE_SecondaryMinor) 00144 + (ITK_COORDINATE_Inferior << ITK_COORDINATE_TertiaryMinor), 00145 ITK_COORDINATE_ORIENTATION_ALI = (ITK_COORDINATE_Anterior << ITK_COORDINATE_PrimaryMinor) 00146 + (ITK_COORDINATE_Left << ITK_COORDINATE_SecondaryMinor) 00147 + (ITK_COORDINATE_Inferior << ITK_COORDINATE_TertiaryMinor), 00148 ITK_COORDINATE_ORIENTATION_PRS = (ITK_COORDINATE_Posterior << ITK_COORDINATE_PrimaryMinor) 00149 + (ITK_COORDINATE_Right << ITK_COORDINATE_SecondaryMinor) 00150 + (ITK_COORDINATE_Superior << ITK_COORDINATE_TertiaryMinor), 00151 ITK_COORDINATE_ORIENTATION_PLS = (ITK_COORDINATE_Posterior << ITK_COORDINATE_PrimaryMinor) 00152 + (ITK_COORDINATE_Left << ITK_COORDINATE_SecondaryMinor) 00153 + (ITK_COORDINATE_Superior << ITK_COORDINATE_TertiaryMinor), 00154 ITK_COORDINATE_ORIENTATION_ARS = (ITK_COORDINATE_Anterior << ITK_COORDINATE_PrimaryMinor) 00155 + (ITK_COORDINATE_Right << ITK_COORDINATE_SecondaryMinor) 00156 + (ITK_COORDINATE_Superior << ITK_COORDINATE_TertiaryMinor), 00157 ITK_COORDINATE_ORIENTATION_ALS = (ITK_COORDINATE_Anterior << ITK_COORDINATE_PrimaryMinor) 00158 + (ITK_COORDINATE_Left << ITK_COORDINATE_SecondaryMinor) 00159 + (ITK_COORDINATE_Superior << ITK_COORDINATE_TertiaryMinor), 00160 00161 ITK_COORDINATE_ORIENTATION_IPR = (ITK_COORDINATE_Inferior << ITK_COORDINATE_PrimaryMinor) 00162 + (ITK_COORDINATE_Posterior << ITK_COORDINATE_SecondaryMinor) 00163 + (ITK_COORDINATE_Right << ITK_COORDINATE_TertiaryMinor), 00164 ITK_COORDINATE_ORIENTATION_SPR = (ITK_COORDINATE_Superior << ITK_COORDINATE_PrimaryMinor) 00165 + (ITK_COORDINATE_Posterior << ITK_COORDINATE_SecondaryMinor) 00166 + (ITK_COORDINATE_Right << ITK_COORDINATE_TertiaryMinor), 00167 ITK_COORDINATE_ORIENTATION_IAR = (ITK_COORDINATE_Inferior << ITK_COORDINATE_PrimaryMinor) 00168 + (ITK_COORDINATE_Anterior << ITK_COORDINATE_SecondaryMinor) 00169 + (ITK_COORDINATE_Right << ITK_COORDINATE_TertiaryMinor), 00170 ITK_COORDINATE_ORIENTATION_SAR = (ITK_COORDINATE_Superior << ITK_COORDINATE_PrimaryMinor) 00171 + (ITK_COORDINATE_Anterior << ITK_COORDINATE_SecondaryMinor) 00172 + (ITK_COORDINATE_Right << ITK_COORDINATE_TertiaryMinor), 00173 ITK_COORDINATE_ORIENTATION_IPL = (ITK_COORDINATE_Inferior << ITK_COORDINATE_PrimaryMinor) 00174 + (ITK_COORDINATE_Posterior << ITK_COORDINATE_SecondaryMinor) 00175 + (ITK_COORDINATE_Left << ITK_COORDINATE_TertiaryMinor), 00176 ITK_COORDINATE_ORIENTATION_SPL = (ITK_COORDINATE_Superior << ITK_COORDINATE_PrimaryMinor) 00177 + (ITK_COORDINATE_Posterior << ITK_COORDINATE_SecondaryMinor) 00178 + (ITK_COORDINATE_Left << ITK_COORDINATE_TertiaryMinor), 00179 ITK_COORDINATE_ORIENTATION_IAL = (ITK_COORDINATE_Inferior << ITK_COORDINATE_PrimaryMinor) 00180 + (ITK_COORDINATE_Anterior << ITK_COORDINATE_SecondaryMinor) 00181 + (ITK_COORDINATE_Left << ITK_COORDINATE_TertiaryMinor), 00182 ITK_COORDINATE_ORIENTATION_SAL = (ITK_COORDINATE_Superior << ITK_COORDINATE_PrimaryMinor) 00183 + (ITK_COORDINATE_Anterior << ITK_COORDINATE_SecondaryMinor) 00184 + (ITK_COORDINATE_Left << ITK_COORDINATE_TertiaryMinor), 00185 00186 ITK_COORDINATE_ORIENTATION_PIR = (ITK_COORDINATE_Posterior << ITK_COORDINATE_PrimaryMinor) 00187 + (ITK_COORDINATE_Inferior << ITK_COORDINATE_SecondaryMinor) 00188 + (ITK_COORDINATE_Right << ITK_COORDINATE_TertiaryMinor), 00189 ITK_COORDINATE_ORIENTATION_PSR = (ITK_COORDINATE_Posterior << ITK_COORDINATE_PrimaryMinor) 00190 + (ITK_COORDINATE_Superior << ITK_COORDINATE_SecondaryMinor) 00191 + (ITK_COORDINATE_Right << ITK_COORDINATE_TertiaryMinor), 00192 ITK_COORDINATE_ORIENTATION_AIR = (ITK_COORDINATE_Anterior << ITK_COORDINATE_PrimaryMinor) 00193 + (ITK_COORDINATE_Inferior << ITK_COORDINATE_SecondaryMinor) 00194 + (ITK_COORDINATE_Right << ITK_COORDINATE_TertiaryMinor), 00195 ITK_COORDINATE_ORIENTATION_ASR = (ITK_COORDINATE_Anterior << ITK_COORDINATE_PrimaryMinor) 00196 + (ITK_COORDINATE_Superior << ITK_COORDINATE_SecondaryMinor) 00197 + (ITK_COORDINATE_Right << ITK_COORDINATE_TertiaryMinor), 00198 ITK_COORDINATE_ORIENTATION_PIL = (ITK_COORDINATE_Posterior << ITK_COORDINATE_PrimaryMinor) 00199 + (ITK_COORDINATE_Inferior << ITK_COORDINATE_SecondaryMinor) 00200 + (ITK_COORDINATE_Left << ITK_COORDINATE_TertiaryMinor), 00201 ITK_COORDINATE_ORIENTATION_PSL = (ITK_COORDINATE_Posterior << ITK_COORDINATE_PrimaryMinor) 00202 + (ITK_COORDINATE_Superior << ITK_COORDINATE_SecondaryMinor) 00203 + (ITK_COORDINATE_Left << ITK_COORDINATE_TertiaryMinor), 00204 ITK_COORDINATE_ORIENTATION_AIL = (ITK_COORDINATE_Anterior << ITK_COORDINATE_PrimaryMinor) 00205 + (ITK_COORDINATE_Inferior << ITK_COORDINATE_SecondaryMinor) 00206 + (ITK_COORDINATE_Left << ITK_COORDINATE_TertiaryMinor), 00207 ITK_COORDINATE_ORIENTATION_ASL = (ITK_COORDINATE_Anterior << ITK_COORDINATE_PrimaryMinor) 00208 + (ITK_COORDINATE_Superior << ITK_COORDINATE_SecondaryMinor) 00209 + (ITK_COORDINATE_Left << ITK_COORDINATE_TertiaryMinor) 00210 } ValidCoordinateOrientationFlags; 00211 // ^^^ 00212 // ||| 00213 // ||\Sequential indexes are separated by (planes=rows*columns) memory locations 00214 // |\Sequential indexes are separated by rows memory locations (sweep out a plane) 00215 // \Sequential indexes are adjacent memory locations (sweep out a row) 00216 00217 #ifndef __TEMPORARILY_INCLUDED_IN_COMPILAITONS__ 00218 typedef enum { 00219 ITK_ORIGIN_IRP =0, 00220 ITK_ORIGIN_IRA =1, 00221 ITK_ORIGIN_ILP =2, 00222 ITK_ORIGIN_ILA =3, 00223 ITK_ORIGIN_SRP =4, 00224 ITK_ORIGIN_SRA =5, 00225 ITK_ORIGIN_SLP =6, 00226 ITK_ORIGIN_SLA =7 00227 } ValidOriginFlags; 00228 #endif 00229 00230 } // end of namespace SpatialOrientation 00231 } // end namespace itk 00232 00233 #endif 00234

Generated at Sun Apr 1 02:45:10 2007 for ITK by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2000