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
}
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)
{