Skip to content

Commit

Permalink
ENH: Wrap VECTOR_COMPONENTS 2;3;4;5
Browse files Browse the repository at this point in the history
Always wrap dimensions 2;3;4;5 when wrapping vector types
  • Loading branch information
LucasGandel committed Dec 18, 2019
1 parent 13b0c85 commit 529aea1
Show file tree
Hide file tree
Showing 20 changed files with 494 additions and 99 deletions.
25 changes: 17 additions & 8 deletions wrapping/itkCudaImage.wrap
@@ -1,22 +1,31 @@
if(RTK_USE_CUDA)

itk_wrap_class("itk::CudaImage" POINTER_WITH_CONST_POINTER)
foreach(t ${WRAP_ITK_REAL})
foreach(d ${ITK_WRAP_IMAGE_DIMS})
itk_wrap_template("${ITKM_${t}}${d}" "${ITKT_${t}}, ${d}")
endforeach()

foreach(d ${ITK_WRAP_IMAGE_DIMS})
itk_wrap_template("F${d}" "float, ${d}")
endforeach()

list(FIND ITK_WRAP_IMAGE_DIMS "4" _index)
if (${_index} EQUAL -1)
itk_wrap_template("F4" "${ITKT_F}, 4")
itk_wrap_template("CI${ITKM_VF3}4" "itk::Vector<${ITKT_F},3>, 4")
endif()

foreach(nbin ${ITK_WRAP_VECTOR_COMPONENTS})
itk_wrap_template("${ITKM_VF${nbin}}3" "itk::Vector<${ITKT_F},${nbin}>, 3")
# Force VECTOR_COMPONENTS to "2;3;4;5"
set(vectorComponents 2 3 4 5)
foreach(component ${vectorComponents})
# Force ITK_WRAP_IMAGE_DIMS to "2;3;4"
set(imageDimensions 2 3 4)
foreach(d ${imageDimensions})
foreach(vt ${WRAP_ITK_VECTOR_REAL})
itk_wrap_template("${ITKM_${vt}${component}}${d}" "${ITKT_${vt}${component}}, ${d}")
endforeach()
foreach(cvt ${WRAP_ITK_COV_VECTOR_REAL})
itk_wrap_template("${ITKM_${cvt}${component}}${d}" "${ITKT_${cvt}${component}}, ${d}")
endforeach()
endforeach()
endforeach()
itk_wrap_template("${ITKM_CVF3}4" "itk::CovariantVector<${ITKT_F},3>, 4")

itk_end_wrap_class()

endif()
31 changes: 26 additions & 5 deletions wrapping/itkCudaImageDataManager.wrap
Expand Up @@ -3,20 +3,41 @@ if(RTK_USE_CUDA)
itk_wrap_include(itkCudaImage.h)

itk_wrap_class("itk::CudaImageDataManager" POINTER)

foreach(d ${ITK_WRAP_IMAGE_DIMS})
itk_wrap_template("CI${ITKM_F}${d}" "itk::CudaImage<${ITKT_F}, ${d}>")
endforeach()

list(FIND ITK_WRAP_IMAGE_DIMS "4" _index)
if(${_index} EQUAL -1)
itk_wrap_template("CIF4" "itk::CudaImage<${ITKT_F}, 4>")
itk_wrap_template("CI${ITKM_VF3}4" "itk::CudaImage<itk::Vector<${ITKT_F},3>, 4>")
itk_wrap_template("CI${ITKM_F}4" "itk::CudaImage<${ITKT_F}, 4>")
endif()

itk_wrap_template("CICVF34" "itk::CudaImage<itk::CovariantVector<${ITKT_F}, 3>, 4>")
foreach(nbin ${ITK_WRAP_VECTOR_COMPONENTS})
itk_wrap_template("CI${ITKM_VF${nbin}}3" "itk::CudaImage<itk::Vector<${ITKT_F},${nbin}>, 3>")
# Force VECTOR_COMPONENTS to "2;3;4;5"
set(vectorComponents 2 3 4 5)
foreach(component ${vectorComponents})

foreach(d ${ITK_WRAP_IMAGE_DIMS})
foreach(vt ${WRAP_ITK_VECTOR_REAL})
itk_wrap_template("CI${ITKM_${vt}${component}}${d}" "itk::CudaImage<${ITKT_${vt}${component}}, ${d}>")
endforeach()
foreach(cvt ${WRAP_ITK_COV_VECTOR_REAL})
itk_wrap_template("CI${ITKM_${cvt}${component}}${d}" "itk::CudaImage<${ITKT_${cvt}${component}}, ${d}>")
endforeach()
endforeach()

list(FIND ITK_WRAP_IMAGE_DIMS "4" _index)
if(${_index} EQUAL -1)
foreach(vt ${WRAP_ITK_VECTOR_REAL})
itk_wrap_template("CI${ITKM_${vt}${component}}4" "itk::CudaImage<${ITKT_${vt}${component}}, 4>")
endforeach()
foreach(cvt ${WRAP_ITK_COV_VECTOR_REAL})
itk_wrap_template("CI${ITKM_${cvt}${component}}4" "itk::CudaImage<${ITKT_${cvt}${component}}, 4>")
endforeach()
endif()

endforeach()

itk_end_wrap_class()

endif()
17 changes: 14 additions & 3 deletions wrapping/itkCudaImageToImageFilter.wrap
@@ -1,14 +1,25 @@
if(RTK_USE_CUDA)


itk_wrap_class("itk::CudaImageToImageFilter" POINTER)

foreach(d ${ITK_WRAP_IMAGE_DIMS})
itk_wrap_template("CI${ITKM_F}${d}CI${ITKM_F}${d}"
"itk::CudaImage<${ITKT_F}, ${d}>, itk::CudaImage<${ITKT_F}, ${d}>")
endforeach()
foreach(nmat 2 3)
itk_wrap_template("CI${ITKM_VF${nmat}}3CI${ITKM_VF${nmat}}3" "itk::CudaImage<itk::Vector<${ITKT_F},${nmat}>, 3>, itk::CudaImage<itk::Vector<${ITKT_F},${nmat}>, 3>")

# Force VECTOR_COMPONENTS to "2;3;4;5"
set(vectorComponents 2 3 4 5)
foreach(component ${vectorComponents})
foreach(vt ${WRAP_ITK_VECTOR_REAL})
# Force ITK_WRAP_IMAGE_DIMS to "2;3;4"
set(imageDimensions 2 3 4)
foreach(d ${imageDimensions})
itk_wrap_template("CI${ITKM_${vt}${component}}${d}CI${ITKM_${vt}${component}}${d}"
"itk::CudaImage<${ITKT_${vt}${component}}, ${d}>, itk::CudaImage<${ITKT_${vt}${component}}, ${d}>")
endforeach()
endforeach()
endforeach()

itk_end_wrap_class()

endif()
27 changes: 23 additions & 4 deletions wrapping/itkCudaInPlaceImageFilter.wrap
@@ -1,23 +1,42 @@
if(RTK_USE_CUDA)

itk_wrap_class("itk::CudaInPlaceImageFilter" POINTER)

#itk_wrap_image_filter_combinations("${WRAP_ITK_REAL}" "${WRAP_ITK_REAL}")
foreach(d ${ITK_WRAP_IMAGE_DIMS})
itk_wrap_template("CI${ITKM_F}${d}CI${ITKM_F}${d}"
"itk::CudaImage<${ITKT_F}, ${d}>, itk::CudaImage<${ITKT_F}, ${d}>")
endforeach()
foreach(nmat 2 3)
itk_wrap_template("CI${ITKM_VF${nmat}}3CI${ITKM_VF${nmat}}3" "itk::CudaImage<itk::Vector<${ITKT_F},${nmat}>, 3>, itk::CudaImage<itk::Vector<${ITKT_F},${nmat}>, 3>")

# Force VECTOR_COMPONENTS to "2;3;4;5"
set(vectorComponents 2 3 4 5)
foreach(component ${vectorComponents})
foreach(d ${ITK_WRAP_IMAGE_DIMS})
itk_wrap_template("CI${ITKM_V${ITKM_F}${component}}${d}CI${ITKM_V${ITKM_F}${component}}${d}"
"itk::CudaImage<itk::Vector<${ITKT_F},${component}>, ${d}>, itk::CudaImage<itk::Vector<${ITKT_F},${component}>, ${d}>")
endforeach()
endforeach()

itk_end_wrap_class()

itk_wrap_class("itk::CudaImageToImageFilter" POINTER)
foreach(d ${ITK_WRAP_IMAGE_DIMS})
itk_wrap_template("CI${ITKM_F}${d}CI${ITKM_F}${d}IPIFCI${ITKM_F}${d}" "itk::CudaImage<${ITKT_F}, ${d}>, itk::CudaImage<${ITKT_F}, ${d}>, itk::InPlaceImageFilter< itk::CudaImage<${ITKT_F}, ${d}> >")
endforeach()
foreach(nmat 2 3)
itk_wrap_template("CI${ITKM_VF${nmat}}3CI${ITKM_VF${nmat}}3IPIFCI${ITKM_VF${nmat}}3" "itk::CudaImage<itk::Vector<${ITKT_F},${nmat}>, 3>, itk::CudaImage<itk::Vector<${ITKT_F},${nmat}>, 3>, itk::InPlaceImageFilter< itk::CudaImage<itk::Vector<${ITKT_F},${nmat}>, 3> >")

# Force VECTOR_COMPONENTS to "2;3;4;5"
set(vectorComponents 2 3 4 5)
foreach(component ${vectorComponents})
foreach(vt ${WRAP_ITK_VECTOR_REAL})
# Force ITK_WRAP_IMAGE_DIMS to "2;3;4"
set(imageDimensions 2 3 4)
foreach(d ${imageDimensions})
itk_wrap_template("CI${ITKM_${vt}${component}}${d}CI${ITKM_${vt}${component}}${d}IPIFCI${ITKM_${vt}${component}}${d}"
"itk::CudaImage<${ITKT_${vt}${component}}, ${d}>, itk::CudaImage<${ITKT_${vt}${component}}, ${d}>, itk::InPlaceImageFilter< itk::CudaImage<${ITKT_${vt}${component}}, ${d}> >")
endforeach()
endforeach()
endforeach()

itk_end_wrap_class()

endif()
16 changes: 16 additions & 0 deletions wrapping/itkImageFileReaderRTK.wrap
@@ -0,0 +1,16 @@
itk_wrap_class("itk::ImageFileReader" POINTER)

# Force ITK_WRAP_VECTOR_COMPONENTS to "2;3;4;5"
set(vectorComponents 2 3 4 5)
foreach(component ${vectorComponents})
list(FIND ITK_WRAP_VECTOR_COMPONENTS "${component}" _index)
if (${_index} EQUAL -1)
foreach(vt ${WRAP_ITK_VECTOR_REAL})
foreach(d ${ITK_WRAP_IMAGE_DIMS})
itk_wrap_template("I${ITKM_${vt}${component}}${d}" "itk::Image<${ITKT_${vt}${component}}, ${d}>")
endforeach()
endforeach()
endif()
endforeach()

itk_end_wrap_class()
16 changes: 16 additions & 0 deletions wrapping/itkImageFileWriterRTK.wrap
@@ -0,0 +1,16 @@
itk_wrap_class("itk::ImageFileWriter" POINTER)

# Force ITK_WRAP_VECTOR_COMPONENTS to "2;3;4;5"
set(vectorComponents 2 3 4 5)
foreach(component ${vectorComponents})
list(FIND ITK_WRAP_VECTOR_COMPONENTS "${component}" _index)
if (${_index} EQUAL -1)
foreach(vt ${WRAP_ITK_VECTOR_REAL})
foreach(d ${ITK_WRAP_IMAGE_DIMS})
itk_wrap_template("I${ITKM_${vt}${component}}${d}" "itk::Image<${ITKT_${vt}${component}}, ${d}>")
endforeach()
endforeach()
endif()
endforeach()

itk_end_wrap_class()
66 changes: 59 additions & 7 deletions wrapping/itkImageRTK.wrap
Expand Up @@ -38,17 +38,59 @@ itk_wrap_class("itk::Image" POINTER)
list(FIND ITK_WRAP_IMAGE_DIMS "4" _index)
if (${_index} EQUAL -1)
itk_wrap_template("F4" "${ITKT_F}, 4")
itk_wrap_template("${ITKM_VF3}4" "${ITKT_VF3}, 4") #rtkCyclicDeformationImageFilter
itk_wrap_template("${ITKM_CVF3}4" "${ITKT_CVF3}, 4") #rtkMotionCompensatedFourDConjugateGradientConeBeamReconstructionFilter
if (ITK_WRAP_double)
itk_wrap_template("D4" "${ITKT_D}, 4")
itk_wrap_template("${ITKM_CVD3}4" "${ITKT_CVD3}, 4") #rtkMotionCompensatedFourDConjugateGradientConeBeamReconstructionFilter
endif()
if (ITK_WRAP_unsigned_short)
itk_wrap_template("US4" "${ITKT_US}, 4")
endif()
endif()

# Force ITK_WRAP_IMAGE_DIMS to contain "2;3;4"
UNIQUE(imageDimensions "${ITK_WRAP_IMAGE_DIMS};2;3;4")
# Force VECTOR_COMPONENTS to contain "2;3;4;5"
set(vectorComponents 2 3 4 5)
foreach(component ${vectorComponents})
list(FIND ITK_WRAP_VECTOR_COMPONENTS "${component}" _index)
if (${_index} EQUAL -1)
foreach(d ${imageDimensions})
foreach(vt ${WRAP_ITK_VECTOR_REAL})
itk_wrap_template("${ITKM_${vt}${component}}${d}" "${ITKT_${vt}${component}}, ${d}")
endforeach()
foreach(cvt ${WRAP_ITK_COV_VECTOR_REAL})
itk_wrap_template("${ITKM_${cvt}${component}}${d}" "${ITKT_${cvt}${component}}, ${d}")
endforeach()
endforeach()
endif()
endforeach()

# Force ITK_WRAP_VECTOR_COMPONENTS to contain "2;3;4;5"
UNIQUE(vectorComponents "${ITK_WRAP_VECTOR_COMPONENTS};2;3;4;5")

# Force ITK_WRAP_IMAGE_DIMS to contain "2;3;4"
set(imageDimensions 2 3 4)
foreach(d ${imageDimensions})
list(FIND ITK_WRAP_IMAGE_DIMS "${d}" _index)
if (${_index} EQUAL -1)
foreach(component ${ITK_WRAP_VECTOR_COMPONENTS})
foreach(vt ${WRAP_ITK_VECTOR_REAL})
itk_wrap_template("${ITKM_${vt}${component}}${d}" "${ITKT_${vt}${component}}, ${d}")
endforeach()
foreach(cvt ${WRAP_ITK_COV_VECTOR_REAL})
itk_wrap_template("${ITKM_${cvt}${component}}${d}" "${ITKT_${cvt}${component}}, ${d}")
endforeach()
endforeach()
endif()
endforeach()

list(FIND ITK_WRAP_VECTOR_COMPONENTS "5" _index)
if (${_index} EQUAL -1)
list(FIND WRAP_ITK_COV_VECTOR_REAL "CVD" _index)
if (${_index} EQUAL -1)
itk_wrap_template("${ITKM_CVD5}3" "itk::CovariantVector<double,5>, 3")
endif()
endif()

itk_end_wrap_class()

itk_wrap_simple_type_swig_interface("itk::Image< float, 2 >::ConstPointer" "itkImageF2_ConstPointer")
Expand All @@ -60,8 +102,8 @@ itk_wrap_simple_type("itk::Image< float, 3 >::ConstPointer" "itkImageF3_ConstPoi
itk_wrap_simple_type_swig_interface("itk::Image< float, 4 >::ConstPointer" "itkImageF4_ConstPointer")
itk_wrap_simple_type("itk::Image< float, 4 >::ConstPointer" "itkImageF4_ConstPointer")

itk_wrap_simple_type_swig_interface("itk::Image< itk::CovariantVector< float, 3 >, 4 >::ConstPointer" "itkImageCVF34_ConstPointer")
itk_wrap_simple_type("itk::Image< itk::CovariantVector< float, 3 >, 4 >::ConstPointer" "itkImageCVF34_ConstPointer")
#itk_wrap_simple_type_swig_interface("itk::Image< itk::CovariantVector< float, 3 >, 4 >::ConstPointer" "itkImageCVF34_ConstPointer")
#itk_wrap_simple_type("itk::Image< itk::CovariantVector< float, 3 >, 4 >::ConstPointer" "itkImageCVF34_ConstPointer")

if (ITK_WRAP_double)
itk_wrap_simple_type_swig_interface("itk::Image< double, 3 >::ConstPointer" "itkImageD3_ConstPointer")
Expand All @@ -70,6 +112,16 @@ if (ITK_WRAP_double)
itk_wrap_simple_type_swig_interface("itk::Image< double, 4 >::ConstPointer" "itkImageD4_ConstPointer")
itk_wrap_simple_type("itk::Image< double, 4 >::ConstPointer" "itkImageD4_ConstPointer")

itk_wrap_simple_type_swig_interface("itk::Image< itk::CovariantVector< double, 3 >, 4 >::ConstPointer" "itkImageCVD34_ConstPointer")
itk_wrap_simple_type("itk::Image< itk::CovariantVector< double, 3 >, 4 >::ConstPointer" "itkImageCVD34_ConstPointer")
#itk_wrap_simple_type_swig_interface("itk::Image< itk::CovariantVector< double, 3 >, 4 >::ConstPointer" "itkImageCVD34_ConstPointer")
#itk_wrap_simple_type("itk::Image< itk::CovariantVector< double, 3 >, 4 >::ConstPointer" "itkImageCVD34_ConstPointer")
endif()

set(vectorComponents 2 3 4 5)
foreach(v ${vectorComponents})
foreach(cvt ${WRAP_ITK_COV_VECTOR_REAL})

itk_wrap_simple_type_swig_interface("itk::Image< ${ITKT_${cvt}${v}}, 4 >::ConstPointer" "itkImage${ITKM_${cvt}${v}}4_ConstPointer")
itk_wrap_simple_type("itk::Image< ${ITKT_${cvt}${v}}, 4 >::ConstPointer" "itkImage${ITKM_${cvt}${v}}4_ConstPointer")

endforeach()
endforeach()
66 changes: 59 additions & 7 deletions wrapping/itkImageSourceRTK.wrap
Expand Up @@ -6,11 +6,6 @@ itk_wrap_class("itk::ImageSource" POINTER)
itk_wrap_template("ID2" "itk::Image<${ITKT_D}, 2>")
itk_wrap_template("ID3" "itk::Image<${ITKT_D}, 3>")
endif()
if (ITK_WRAP_double)
foreach(nmat 2 3)
itk_wrap_template("I${ITKM_VD${nmat}}3" "itk::Image<itk::Vector<${ITKT_D},${nmat}>, 3>")
endforeach()
endif()

# Wrap ITK unsigned char missing types
if (NOT ITK_WRAP_unsigned_char)
Expand Down Expand Up @@ -47,15 +42,72 @@ itk_wrap_class("itk::ImageSource" POINTER)
endif()
endif()

# Force ITK_WRAP_IMAGE_DIMS to contain "2;3;4"
UNIQUE(imageDimensions "${ITK_WRAP_IMAGE_DIMS};2;3;4")
set(vectorComponents 2 3 4 5)
foreach(component ${vectorComponents})
list(FIND ITK_WRAP_VECTOR_COMPONENTS "${component}" _index)
if (${_index} EQUAL -1)
foreach(vt ${WRAP_ITK_VECTOR_REAL})
foreach(d ${imageDimensions})
itk_wrap_template("I${ITKM_${vt}${component}}${d}" "itk::Image<${ITKT_${vt}${component}}, ${d}>")
endforeach()
endforeach()
endif()
endforeach()

# Force ITK_WRAP_VECTOR_COMPONENTS to contain "2;3;4;5"
UNIQUE(vectorComponents "${ITK_WRAP_VECTOR_COMPONENTS};2;3;4;5")

# Force ITK_WRAP_IMAGE_DIMS to contain "2;3;4"
set(imageDimensions 2 3 4)
foreach(d ${imageDimensions})
list(FIND ITK_WRAP_IMAGE_DIMS "${d}" _index)
if (${_index} EQUAL -1)
foreach(vt ${WRAP_ITK_VECTOR_REAL})
foreach(component ${ITK_WRAP_VECTOR_COMPONENTS})
itk_wrap_template("I${ITKM_${vt}${component}}${d}" "itk::Image<${ITKT_${vt}${component}}, ${d}>")
endforeach()
endforeach()
endif()
endforeach()

# Wrap CUDA types
if(RTK_USE_CUDA)
itk_wrap_include(itkCudaImage.h)

foreach(d ${ITK_WRAP_IMAGE_DIMS})
itk_wrap_template("CI${ITKM_F}${d}" "itk::CudaImage<${ITKT_F}, ${d}>")
endforeach()
foreach(nmat 2 3)
itk_wrap_template("CI${ITKM_VF${nmat}}3" "itk::CudaImage<itk::Vector<${ITKT_F},${nmat}>, 3>")

set(vectorComponents 2 3 4 5)
foreach(component ${vectorComponents})
foreach(vt ${WRAP_ITK_VECTOR_REAL})

foreach(d ${ITK_WRAP_IMAGE_DIMS})
itk_wrap_template("CI${ITKM_${vt}${component}}${d}" "itk::CudaImage<${ITKT_${vt}${component}}, ${d}>")
endforeach()

list(FIND ITK_WRAP_IMAGE_DIMS "4" _index)
if(${_index} EQUAL -1)
itk_wrap_template("CI${ITKM_${vt}${component}}4" "itk::CudaImage<${ITKT_${vt}${component}}, 4>")
endif()

endforeach()
endforeach()

endif()

# Wrap ITK CovariantVector missing types
if (NOT ITK_WRAP_covariant_vector_double)

set(vectorComponents 2 4 5) # Component 3 handled in ITK
foreach(v ${vectorComponents})

itk_wrap_template("ICVD${v}3" "itk::Image<itk::CovariantVector<${ITKT_D}, ${v}>, 3>")

endforeach()

endif()

itk_end_wrap_class()

0 comments on commit 529aea1

Please sign in to comment.