]> Creatis software - gdcm.git/blobdiff - src/gdcmOrientation.h
Removing 'typedef' from enum declaration should avoid compile error with gcc4.
[gdcm.git] / src / gdcmOrientation.h
index 7a69aa101dacf9ccfdf537b7434f1acb0a717b95..360538ecba1a4524ba26816e0e3ab1bdd81506b4 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmOrientation.h,v $
   Language:  C++
-  Date:      $Date: 2005/10/01 15:51:42 $
-  Version:   $Revision: 1.8 $
+  Date:      $Date: 2005/10/23 15:12:24 $
+  Version:   $Revision: 1.11 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -57,7 +57,7 @@ class File;
  *
  * Example #1:
  * Imagine the patient, in "HFS" position.
- * Sagital images are requested.
+ * Full body sagital images are requested.
  * All the cosines will be -1, 0, or +1;
  * "Patient Orientation" (deduced) will be "A/F".
  * Positive X axis is oriented 'towards patient's nose
@@ -65,26 +65,46 @@ class File;
  *
  * Example #2:
  * Imagine now that patient has a stiffneck and his head is *turned* 30 degrees towards the left.
- * Sagital images are requested.
+ * Head sagital images are requested.
  * One of the cosines will be almost 0.5
  * Deduced "Patient Orientation" will be "AL\F"
  * (main X axis orientation is towards patient's nose, and a little bit towards the left)
- * but the image is *perfectly* sagital !
+ * but the image looks *perfectly* sagital (for the head, not for the patient) !
  *
  * Imagine the patient's stiffneck causes head to be *bended* 30 degrees towards the left AND *turned* left.
  * Sagital images are requested...
  * You'll probabely have 3 letters for X axis and  Y axis, and the image remains *perfectly* sagital !
- * The values are given within the 'imager referential', better than within the 'Patient Referential' ...
+ * The values are given within the 'Patient referential', *not* within the 'Organ referential' ...
  */
+typedef enum {
+   NotApplicable = 0,
+   Axial = 1,
+   AxialInvert = -1,
+   Coronal = 2,
+   CoronalInvert = -2,
+   Sagital = 3,
+   SagitalInvert = -3,
+   HeartAxial = 4,
+   HeartAxialInvert = -4,
+   HeartCoronal = 5,
+   HeartCoronalInvert = -5,
+   HeartSagital = 6,
+   HeartSagitalInvert = -6
+} OrientationType;
+
 class GDCM_EXPORT Orientation : public Base
 {
 public:
+/// \brief Constructor
   Orientation() {}
+/// \brief Canonical Destructor
   ~Orientation() {}
 
-  double TypeOrientation( File *file );
+  OrientationType GetOrientationType( File *file );
   std::string GetOrientation ( File *file );  
   
+  static const char* GetOrientationTypeString(OrientationType const o);
+
 private:
    Res VerfCriterion(int typeCriterion, double criterionNew, Res const &res);
    double CalculLikelyhood2Vec(vector3D const &refA, vector3D const &refB,