comparison Framework/Toolbox/DicomInstanceParameters.cpp @ 1161:19b1c8caade4 broker

fix sagittal geometry
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 19 Nov 2019 17:30:05 +0100
parents acb399643945
children 17a92c39c633
comparison
equal deleted inserted replaced
1160:59906485896f 1161:19b1c8caade4
468 offset = rescaleIntercept_; 468 offset = rescaleIntercept_;
469 } 469 }
470 470
471 return (value * factor + offset); 471 return (value * factor + offset);
472 } 472 }
473
474
475 bool DicomInstanceParameters::Data::ComputeRegularSpacing(double& spacing) const
476 {
477 if (frameOffsets_.size() == 0) // Not a RT-DOSE
478 {
479 return false;
480 }
481 else if (frameOffsets_.size() == 1)
482 {
483 spacing = 1; // Edge case: RT-DOSE with one single frame
484 return true;
485 }
486 else
487 {
488 spacing = std::abs(frameOffsets_[1] - frameOffsets_[0]);
489
490 for (size_t i = 1; i + 1 < frameOffsets_.size(); i++)
491 {
492 double s = frameOffsets_[i + 1] - frameOffsets_[i];
493 if (!LinearAlgebra::IsNear(spacing, s, 0.001))
494 {
495 return false;
496 }
497 }
498
499 return true;
500 }
501 }
473 } 502 }