From 6080cf1183109b5884c26e4475246c9259a4c1d5 Mon Sep 17 00:00:00 2001 From: Shreeraj Jadhav Date: Fri, 11 Mar 2022 14:04:39 -0500 Subject: [PATCH] BUG: Copy direction cosines to exported image data Copy direction cosines (DirectionMatrix) from vtkMRMLVolumeNode to the extracted vtkImageData before exporting. This is in concurrence with other grid related metadata such as origin and spacing, that need to be copied before exporting vtkImageData. Refer to discussion here [1] for the necessity to do this. [1] https://github.com/Slicer/Slicer/blob/d010e8c075a9a66ce21a38ed549a20296ab7669d/Libs/MRML/Core/vtkMRMLVolumeNode.h#L174 Addresses issue https://gitlab.kitware.com/aeva/aeva/-/issues/273 --- SMTKFileWriter/Logic/vtkSlicerSMTKFileWriterLogic.cxx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/SMTKFileWriter/Logic/vtkSlicerSMTKFileWriterLogic.cxx b/SMTKFileWriter/Logic/vtkSlicerSMTKFileWriterLogic.cxx index dfcdfc0..0720d1d 100644 --- a/SMTKFileWriter/Logic/vtkSlicerSMTKFileWriterLogic.cxx +++ b/SMTKFileWriter/Logic/vtkSlicerSMTKFileWriterLogic.cxx @@ -302,6 +302,9 @@ bool exportVolumeNodeToAevaSMTKResource(vtkMRMLVolumeNode* volumeNode, image->DeepCopy(nodeImage); image->SetSpacing(volumeNode->GetSpacing()); image->SetOrigin(volumeNode->GetOrigin()); + double dirs[3][3]; + volumeNode->GetIJKToRASDirections(dirs); + image->SetDirectionMatrix(dirs[0][0], dirs[0][1], dirs[0][2], dirs[1][0], dirs[1][1], dirs[1][2], dirs[2][0], dirs[2][1], dirs[2][2]); auto modelName = std::string(volumeNode->GetName()); return addVTKImageDataToAevaSMTKModelResource(image, resource, modelName, exportPath); -- GitLab