multiSiddon - projection lines lengths not updated before accessing

While reading some code, I stumbled on a GetLength() function that wasn’t returning the length of the current projectionLine…

The resulting image doesn’t change much. So I can’t say if it makes the image better or worse.

In detail:

Source: \src\projector\iProjectorIncrementalSiddonMulti.cc

(line:189) if (mp_Scanner->GetRdmPositionsAndOrientations( ap_ProjectionLine->GetIndex1(), ap_ProjectionLine->GetIndex2(),

ap_ProjectionLine->GetPosition1(), ap_ProjectionLine->GetPosition2(),

ap_ProjectionLine->GetOrientation1(), ap_ProjectionLine->GetOrientation2() ))

[…]

// **************************************

// STEP 1: LOR length calculation

// **************************************

(line:213) HPFLTNB length_LOR = ap_ProjectionLine->GetLength();

GetLength() does not take into account the length change caused by mp_Scanner->GetRdmPositionsAndOrientations

If it wasn’t intentional, a simple solution would be to add a call to ComputeLineLength():

// **************************************

// STEP 1: LOR length calculation

// **************************************

ap_ProjectionLine->ComputeLineLength();

HPFLTNB length_LOR = ap_ProjectionLine->GetLength();

Hope that helps.

Simon Laperle

While reading some code, I stumbled on a GetLength() function that wasn’t returning the length of the current projectionLine…

The resulting image doesn’t change much. So I can’t say if it makes the image better or worse.

In detail:

Source: \src\projector\iProjectorIncrementalSiddonMulti.cc

(line:189) if (mp_Scanner->GetRdmPositionsAndOrientations( ap_ProjectionLine->GetIndex1(), ap_ProjectionLine->GetIndex2(),

ap_ProjectionLine->GetPosition1(), ap_ProjectionLine->GetPosition2(),

ap_ProjectionLine->GetOrientation1(), ap_ProjectionLine->GetOrientation2() ))

[…]

// **************************************

// STEP 1: LOR length calculation

// **************************************

(line:213) HPFLTNB length_LOR = ap_ProjectionLine->GetLength();

GetLength() does not take into account the length change caused by mp_Scanner->GetRdmPositionsAndOrientations

If it wasn’t intentional, a simple solution would be to add a call to ComputeLineLength():

// **************************************

// STEP 1: LOR length calculation

// **************************************

ap_ProjectionLine->ComputeLineLength();

HPFLTNB length_LOR = ap_ProjectionLine->GetLength();

Hope that helps.

Simon Laperle