Implement remapping between volume data layers

Merged Morten Ofstad requested to merge feature/morten.ofstad/remapping into master
  • Implemented lazy determination of remap source layer.
  • Fix wrong error handling if zlib uncompress fails in DeserializeVolumeData.
  • Converted an error case in CopyDataBlockIntoLinearBuffer into an assert since it cannot happen if the code around it is correct.
  • Implemented volume data hash tracking.
  • Fix problem with dereferencing nullptr in VolumeDataLayer::GetProduceStatus and don't call this method in FindLayerToRemapFrom as it leads to problems with re-entrancy.
  • Added getter for VolumeDataHash to VolumeDataPageImpl.
  • Implemented VolumeDataRequestProcessor::RequestRemap().
  • Throw runtime error instead of aborting the process in case of illegal voxel format in calls to GetVoxelFormatByteSize/GetElementSize.
  • Added RequestVolumeSubsetWithDifferentFormatsAndDimensionGroups to data access tests.
  • Only serialize layer status for layers that have a metadatamanager, this avoids adding information for remapped layers that are not actually stored on the remote.
  • Temporarily disable remapping from lower LOD until automatic LOD creation has been implemented.

Merge request reports