From: schaerer Date: Thu, 9 Sep 2010 15:32:19 +0000 (+0000) Subject: support for the precise flexmap X-Git-Tag: v1.2.0~397 X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=332300b6cd8e17f3691701dc13e0742e5330481d;p=clitk.git support for the precise flexmap --- diff --git a/tools/clitkConeBeamProjectImage.ggo b/tools/clitkConeBeamProjectImage.ggo index 9e9772e..1c77551 100755 --- a/tools/clitkConeBeamProjectImage.ggo +++ b/tools/clitkConeBeamProjectImage.ggo @@ -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 diff --git a/tools/clitkConeBeamProjectImageGenericFilter.cxx b/tools/clitkConeBeamProjectImageGenericFilter.cxx index 2486938..ff775d0 100755 --- a/tools/clitkConeBeamProjectImageGenericFilter.cxx +++ b/tools/clitkConeBeamProjectImageGenericFilter.cxx @@ -131,16 +131,18 @@ namespace clitk } filter->SetEdgePaddingValue(static_cast(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) {