void DICOMFileFrameRegionReader::setDicomFiles()

in src/dicom_file_region_reader.cpp [35:65]


void DICOMFileFrameRegionReader::setDicomFiles(
std::vector<std::unique_ptr<AbstractDcmFile>> dcmFiles,
std::unique_ptr<TiffFile> tiffFile) {
  // all files should have frames with same dimensions
  clearDicomFiles();
  dcmFiles_ = std::move(dcmFiles);
  tiffFile_ = std::move(tiffFile);  // Tiff file used to gen DICOM Frames
                                    // nullptr if frames generated from
                                    // prior level or openslide.
  if (dcmFiles_.size() <= 0) {
    clearDicomFiles();
    return;
  }
  const AbstractDcmFile & first_dcm_file = (*dcmFiles_.at(0));
  if (!first_dcm_file.frame(0)->hasRawABGRFrameBytes()) {
    clearDicomFiles();
    return;
  }
  frameWidth_ = first_dcm_file.frameWidth();
  frameHeight_ = first_dcm_file.frameHeight();
  imageWidth_ = first_dcm_file.imageWidth();
  imageHeight_ = first_dcm_file.imageHeight();
  // compute frames per row and column.  Not final frames may
  // not be used completely.
  framesPerRow_ = static_cast<int64_t>(
                                  std::ceil(static_cast<double>(imageWidth_) /
                                  static_cast<double>(frameWidth_)));
  framesPerColumn_ = static_cast<int64_t>(
                                  std::ceil(static_cast<double>(imageHeight_) /
                                  static_cast<double>(frameHeight_)));
}