Mercurial > hg > orthanc-stone
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 } |