1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204
|
###############################################################################
# Set up variables to store "mangled names" and proper C++ type names for the
# basic types.
###############################################################################
set(ITKT_UC "unsigned char") # Type
set(ITKM_UC "UC") # Mangle
set(ITKT_US "unsigned short") # Type
set(ITKM_US "US") # Mangle
set(ITKT_UI "unsigned int") # Type
set(ITKM_UI "UI") # Mangle
set(ITKT_UL "unsigned long") # Type
set(ITKM_UL "UL") # Mangle
set(ITKT_ULL "unsigned long long") # Type
set(ITKM_ULL "ULL") # Mangle
set(ITKT_SC "signed char") # Type
set(ITKM_SC "SC") # Mangle
set(ITKT_SS "signed short") # Type
set(ITKM_SS "SS") # Mangle
set(ITKT_SI "signed int") # Type
set(ITKM_SI "SI") # Mangle
set(ITKT_SL "signed long") # Type
set(ITKM_SL "SL") # Mangle
set(ITKT_SLL "signed long long") # Type
set(ITKM_SLL "SLL") # Mangle
set(ITKT_F "float") # Type
set(ITKM_F "F") # Mangle
set(ITKT_D "double") # Type
set(ITKM_D "D") # Mangle
set(ITKT_LD "long double") # Type
set(ITKM_LD "LD") # Mangle
set(ITKT_B "bool") # Type
set(ITKM_B "B") # Mangle
###############################################################################
# A list of the union of ${ITK_WRAP_IMAGE_DIMS} and incremented ITK_WRAP_IMAGE_DIMS. This
# is needed for the VelocityFieldTransform related classes
###############################################################################
set(ITK_WRAP_IMAGE_DIMS_INCREMENTED "")
foreach(d ${ITK_WRAP_IMAGE_DIMS})
# For VelocityFieldTranform
INCREMENT(d_inc ${d})
list(APPEND ITK_WRAP_IMAGE_DIMS_INCREMENTED ${d} ${d_inc})
endforeach()
list(REMOVE_DUPLICATES ITK_WRAP_IMAGE_DIMS_INCREMENTED)
# Needed for itkMatrix, itkPoint, ...
set(ITK_WRAP_VECTOR_COMPONENTS_INCREMENTED "")
foreach(d ${ITK_WRAP_VECTOR_COMPONENTS})
INCREMENT(d_inc ${d})
list(APPEND ITK_WRAP_VECTOR_COMPONENTS_INCREMENTED ${d} ${d_inc})
endforeach()
list(REMOVE_DUPLICATES ITK_WRAP_VECTOR_COMPONENTS_INCREMENTED)
INTERSECTION(_vector_dims_intersection "${ITK_WRAP_VECTOR_COMPONENTS}"
"${ITK_WRAP_IMAGE_DIMS}")
list(LENGTH ITK_WRAP_IMAGE_DIMS _num_dims)
list(LENGTH _vector_dims_intersection _num_vector_dims_intersection)
if(NOT _num_dims EQUAL _num_vector_dims_intersection)
message(FATAL_ERROR "ITK_WRAP_VECTOR_COMPONENTS must include ITK_WRAP_IMAGE_DIMS")
endif()
###############################################################################
# Create some variable which can be used later
###############################################################################
set(WRAP_ITK_USIGN_INT "")
if(ITK_WRAP_unsigned_char)
list(APPEND WRAP_ITK_USIGN_INT "UC")
endif()
if(ITK_WRAP_unsigned_long)
list(APPEND WRAP_ITK_USIGN_INT "UL")
endif()
if(ITK_WRAP_unsigned_long_long)
list(APPEND WRAP_ITK_USIGN_INT "ULL")
endif()
if(ITK_WRAP_unsigned_short)
list(APPEND WRAP_ITK_USIGN_INT "US")
endif()
set(WRAP_ITK_SIGN_INT "")
if(ITK_WRAP_signed_char)
list(APPEND WRAP_ITK_SIGN_INT "SC")
endif()
if(ITK_WRAP_signed_long)
list(APPEND WRAP_ITK_SIGN_INT "SL")
endif()
if(ITK_WRAP_signed_long_long)
list(APPEND WRAP_ITK_SIGN_INT "SLL")
endif()
if(ITK_WRAP_signed_short)
list(APPEND WRAP_ITK_SIGN_INT "SS")
endif()
set(WRAP_ITK_REAL "")
if(ITK_WRAP_float)
list(APPEND WRAP_ITK_REAL "F")
endif()
if(ITK_WRAP_double)
list(APPEND WRAP_ITK_REAL "D")
endif()
set(WRAP_ITK_RGB "")
if(ITK_WRAP_rgb_unsigned_char)
list(APPEND WRAP_ITK_RGB "RGBUC")
endif()
if(ITK_WRAP_rgb_unsigned_short)
list(APPEND WRAP_ITK_RGB "RGBUS")
endif()
set(WRAP_ITK_RGBA "")
if(ITK_WRAP_rgba_unsigned_char)
list(APPEND WRAP_ITK_RGBA "RGBAUC")
endif()
if(ITK_WRAP_rgba_unsigned_short)
list(APPEND WRAP_ITK_RGBA "RGBAUS")
endif()
set(WRAP_ITK_VECTOR_REAL "")
if(ITK_WRAP_vector_double)
list(APPEND WRAP_ITK_VECTOR_REAL "VD")
endif()
if(ITK_WRAP_vector_float)
list(APPEND WRAP_ITK_VECTOR_REAL "VF")
endif()
set(WRAP_ITK_COV_VECTOR_REAL "")
if(ITK_WRAP_covariant_vector_double)
list(APPEND WRAP_ITK_COV_VECTOR_REAL "CVD")
endif()
if(ITK_WRAP_covariant_vector_float)
list(APPEND WRAP_ITK_COV_VECTOR_REAL "CVF")
endif()
set(WRAP_ITK_COMPLEX_REAL "")
if(ITK_WRAP_complex_double)
list(APPEND WRAP_ITK_COMPLEX_REAL "CD")
endif()
if(ITK_WRAP_complex_float)
list(APPEND WRAP_ITK_COMPLEX_REAL "CF")
endif()
set(WRAP_ITK_INT ${WRAP_ITK_SIGN_INT} ${WRAP_ITK_USIGN_INT})
set(WRAP_ITK_SCALAR ${WRAP_ITK_INT} ${WRAP_ITK_REAL})
set(WRAP_ITK_VECTOR ${WRAP_ITK_VECTOR_REAL} ${WRAP_ITK_COV_VECTOR_REAL})
set(WRAP_ITK_COLOR ${WRAP_ITK_RGB} ${WRAP_ITK_RGBA})
set(WRAP_ITK_ALL_TYPES ${WRAP_ITK_RGB} ${WRAP_ITK_RGBA} ${WRAP_ITK_VECTOR} ${WRAP_ITK_SCALAR} ${WRAP_ITK_COMPLEX_REAL})
# Make a list of all the RGB Pixel types which are wrapped.
set(WRAP_ITK_RGB_PIXEL_TYPES "D;F")
if(ITK_WRAP_rgb_unsigned_char)
list(APPEND WRAP_ITK_RGB_PIXEL_TYPES UC)
endif()
if(ITK_WRAP_rgb_unsigned_short)
list(APPEND WRAP_ITK_RGB_PIXEL_TYPES US)
endif()
# Make a list of all the RGBA Pixel types which are wrapped.
set(WRAP_ITK_RGBA_PIXEL_TYPES "D;F")
if(ITK_WRAP_rgba_unsigned_char)
list(APPEND WRAP_ITK_RGBA_PIXEL_TYPES UC)
endif()
if(ITK_WRAP_rgba_unsigned_short)
list(APPEND WRAP_ITK_RGBA_PIXEL_TYPES US)
endif()
# Make a list of all selected types "smaller than" a given type
INTERSECTION(SMALLER_THAN_D "F;UL;US;UC;SL;SS;SC" "${WRAP_ITK_SCALAR}")
INTERSECTION(SMALLER_THAN_F "UL;US;UC;SL;SS;SC" "${WRAP_ITK_SCALAR}")
INTERSECTION(SMALLER_THAN_UL "US;UC;SL;SS;SC" "${WRAP_ITK_INT}")
INTERSECTION(SMALLER_THAN_ULL "US;UC;SL;SS;SC" "${WRAP_ITK_INT}")
INTERSECTION(SMALLER_THAN_US "UC;SC" "${WRAP_ITK_INT}")
INTERSECTION(SMALLER_THAN_SL "US;UC;SS;SC" "${WRAP_ITK_INT}")
INTERSECTION(SMALLER_THAN_SLL "US;UC;SS;SC" "${WRAP_ITK_INT}")
INTERSECTION(SMALLER_THAN_SS "UC;SC" "${WRAP_ITK_INT}")
# Types that correspond itk::SizeValueType, itk::IdentifierType, and itk::OffsetValueType
if(WIN32 AND ITK_USE_64BITS_IDS)
set(ITKM_ST ${ITKM_ULL})
set(ITKT_ST "${ITKT_ULL}")
set(ITKM_IT ${ITKM_ULL})
set(ITKT_IT "${ITKT_ULL}")
set(ITKM_OT ${ITKM_SLL})
set(ITKT_OT "${ITKT_SLL}")
else()
set(ITKM_ST ${ITKM_UL})
set(ITKT_ST "${ITKT_UL}")
set(ITKM_IT ${ITKM_UL})
set(ITKT_IT "${ITKT_UL}")
set(ITKM_OT ${ITKM_SL})
set(ITKT_OT "${ITKT_SL}")
endif()
|