Skip to content

Commit d354234

Browse files
author
Marc Modat
committed
#128 removed duplicated resampling kernel and bring CudaAladinContent with CudaContent
1 parent 34fbccd commit d354234

24 files changed

Lines changed: 149 additions & 767 deletions

reg-lib/AladinContent.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
#include "Content.h"
1010
#include "_reg_blockMatching.h"
1111

12-
class AladinContent: public Content {
12+
class AladinContent: public virtual Content {
1313
public:
1414
AladinContent(const AladinContent&) = delete;
1515
AladinContent(NiftiImage& referenceIn,

reg-lib/_reg_aladin.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,11 @@ NiftiImage reg_aladin<T>::GetFinalWarpedImage() {
375375

376376
unique_ptr<int[]> mask(new int[this->inputReference.nVoxelsPerVolume()]());
377377

378+
// The final warp uses cubic interpolation, which the CUDA resampler does not support; run it on
379+
// the CPU (mirroring reg_f3d, which forces the CPU platform for its final cubic warp).
380+
this->platformType = PlatformType::Cpu;
381+
this->platform.reset(new Platform(PlatformType::Cpu));
382+
378383
reg_aladin<T>::InitAladinContent(this->inputReference,
379384
this->inputFloating,
380385
mask.get(),

reg-lib/cl/ClAffineDeformationFieldKernel.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
/* *************************************************************** */
66
ClAffineDeformationFieldKernel::ClAffineDeformationFieldKernel(Content *conIn) : AffineDeformationFieldKernel() {
77
//populate the ClAladinContent object ptr
8-
ClAladinContent *con = static_cast<ClAladinContent*>(conIn);
8+
ClAladinContent *con = dynamic_cast<ClAladinContent*>(conIn);
99

1010
//path to kernel files
1111
const char* niftyreg_install_dir = getenv("NIFTYREG_INSTALL_DIR");

reg-lib/cl/ClBlockMatchingKernel.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
/* *************************************************************** */
66
ClBlockMatchingKernel::ClBlockMatchingKernel(Content *conIn) : BlockMatchingKernel() {
77
//populate the ClAladinContent object ptr
8-
ClAladinContent *con = static_cast<ClAladinContent*>(conIn);
8+
ClAladinContent *con = dynamic_cast<ClAladinContent*>(conIn);
99

1010
//path to kernel file
1111
const char *niftyreg_install_dir = getenv("NIFTYREG_INSTALL_DIR");

reg-lib/cl/ClLtsKernel.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
/* *************************************************************** */
44
ClLtsKernel::ClLtsKernel(Content *conIn) : LtsKernel() {
55
//populate the ClAladinContent object ptr
6-
ClAladinContent *con = static_cast<ClAladinContent*>(conIn);
6+
ClAladinContent *con = dynamic_cast<ClAladinContent*>(conIn);
77

88
//get necessary cpu ptrs
99
transformationMatrix = con->AladinContent::GetTransformationMatrix();

reg-lib/cl/ClResampleImageKernel.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
/* *************************************************************** */
77
ClResampleImageKernel::ClResampleImageKernel(Content *conIn) : ResampleImageKernel() {
88
//populate the CLContext object ptr
9-
ClAladinContent *con = static_cast<ClAladinContent*>(conIn);
9+
ClAladinContent *con = dynamic_cast<ClAladinContent*>(conIn);
1010

1111
//path to kernel file
1212
const char *nrInstallDir = getenv("NIFTYREG_INSTALL_DIR");

reg-lib/cpu/CpuAffineDeformationFieldKernel.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
/* *************************************************************** */
55
CpuAffineDeformationFieldKernel::CpuAffineDeformationFieldKernel(Content *conIn) : AffineDeformationFieldKernel() {
6-
AladinContent *con = static_cast<AladinContent*>(conIn);
6+
AladinContent *con = dynamic_cast<AladinContent*>(conIn);
77
deformationFieldImage = con->GetDeformationField();
88
affineTransformation = con->GetTransformationMatrix();
99
mask = con->GetReferenceMask();

reg-lib/cpu/CpuBlockMatchingKernel.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
/* *************************************************************** */
44
CpuBlockMatchingKernel::CpuBlockMatchingKernel(Content *conIn) : BlockMatchingKernel() {
5-
AladinContent *con = static_cast<AladinContent*>(conIn);
5+
AladinContent *con = dynamic_cast<AladinContent*>(conIn);
66
reference = con->GetReference();
77
warped = con->GetWarped();
88
params = con->GetBlockMatchingParams();

reg-lib/cpu/CpuLtsKernel.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
/* *************************************************************** */
44
CpuLtsKernel::CpuLtsKernel(Content *conIn) : LtsKernel() {
5-
AladinContent *con = static_cast<AladinContent*>(conIn);
5+
AladinContent *con = dynamic_cast<AladinContent*>(conIn);
66
transformationMatrix = con->GetTransformationMatrix();
77
blockMatchingParams = con->GetBlockMatchingParams();
88
}

reg-lib/cpu/CpuResampleImageKernel.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
/* *************************************************************** */
55
CpuResampleImageKernel::CpuResampleImageKernel(Content *conIn) : ResampleImageKernel() {
6-
AladinContent *con = static_cast<AladinContent*>(conIn);
6+
AladinContent *con = dynamic_cast<AladinContent*>(conIn);
77
floatingImage = con->GetFloating();
88
warpedImage = con->GetWarped();
99
deformationField = con->GetDeformationField();

0 commit comments

Comments
 (0)