]> Creatis software - clitk.git/commitdiff
support for the precise flexmap
authorschaerer <schaerer>
Thu, 9 Sep 2010 15:32:19 +0000 (15:32 +0000)
committerschaerer <schaerer>
Thu, 9 Sep 2010 15:32:19 +0000 (15:32 +0000)
tools/clitkConeBeamProjectImage.ggo
tools/clitkConeBeamProjectImageGenericFilter.cxx

index 9e9772e7911ab326fbd35ad95b179e6b1854d514..1c77551e0500be7c8b9601d67d1610b4c9a99fa1 100755 (executable)
@@ -34,4 +34,5 @@ option "origin"                       -       "Origin for the output image"                   double          multiple no     default=
 option "size"                  -       "Size for the output image"                     int             multiple no     default="512"       
 option "spacing"               -       "Spacing for the output image"                  double          multiple no     default="0.8"       
 
-option "panel_position"         -       "Position of the panel: small, medium or large" string          no              default="small"
+option "panel_position"         -       "Approximate position of the panel: small, medium or large"     string          no              default="small"
+option "panel_shift"            -       "Precise position of the panel in mm"           double          no
index 248693876b408450c29fcf411b8b7fb6728b650d..ff775d049b21e72155bd2d4d7b36222b7801132c 100755 (executable)
@@ -131,16 +131,18 @@ namespace clitk
       }
     filter->SetEdgePaddingValue(static_cast<OutputPixelType>(m_ArgsInfo.pad_arg));
 
-    // Panel position (hard coded values for the elekta synergy)
-    // Two be more precise, one should read the specific values for each angle in Frame.dbf
     DD(m_ArgsInfo.panel_position_arg);
-    if (strcmp(m_ArgsInfo.panel_position_arg,"small") ==0)
-      filter->SetPanelShift(0.);
-    else if (strcmp(m_ArgsInfo.panel_position_arg,"medium") ==0)
-      filter->SetPanelShift(114.84);
-    else if (strcmp(m_ArgsInfo.panel_position_arg,"large") ==0)
-      filter->SetPanelShift(190.);
-    else assert(false); //Unsupported panel position
+    if (m_ArgsInfo.panel_shift_given) // one should read the specific values for each angle in Frame.dbf
+      filter->SetPanelShift(m_ArgsInfo.panel_shift_arg);
+    else { // approximate panel positions hard coded values for the elekta synergy
+      if (strcmp(m_ArgsInfo.panel_position_arg,"small") ==0)
+        filter->SetPanelShift(0.);
+      else if (strcmp(m_ArgsInfo.panel_position_arg,"medium") ==0)
+        filter->SetPanelShift(114.84);
+      else if (strcmp(m_ArgsInfo.panel_position_arg,"large") ==0)
+        filter->SetPanelShift(190.);
+      else assert(false); //Unsupported panel position
+    }
     // Output image info
     if (m_ArgsInfo.like_given)
       {