```cmake
WRAP_CLASS("itk::BinaryThresholdProjectionImageFilter" POINTER_WITH_SUPERCLASS)
  WRAP_IMAGE_FILTER_SCALAR(2)

  # reduce the output dimension by 1, if possible
  FOREACH(t ${WRAP_ITK_SCALAR})
    FOREACH(t2 ${WRAP_ITK_INT})
      FOREACH(d ${WRAP_ITK_DIMS})
        DECREMENT(d1 ${d})
        FILTER_DIMS(d2 "${d1}")
        IF(d2)
          WRAP_TEMPLATE("${ITKM_I${t}${d}}${ITKM_I${t2}${d2}}" "${ITKT_I${t}${d}},${ITKT_I${t2}${d2}}")
        ENDIF(d2)
      ENDFOREACH(d)
    ENDFOREACH(t2)
  ENDFOREACH(t)
END_WRAP_CLASS()
```

Reduce the number of wrapped types to avoid the hierarchy gaps warnings
user
```cmake
WRAP_CLASS("itk::BinaryThresholdProjectionImageFilter" POINTER_WITH_SUPERCLASS)
  WRAP_IMAGE_FILTER_SCALAR(2)

  # reduce the output dimension by 1, if possible
  FOREACH(t ${WRAP_ITK_SCALAR})
#    FOREACH(t2 ${WRAP_ITK_INT})
      SET(t2 ${t})
      FOREACH(d ${WRAP_ITK_DIMS})
        DECREMENT(d1 ${d})
        FILTER_DIMS(d2 "${d1}")
        IF(d2)
          WRAP_TEMPLATE("${ITKM_I${t}${d}}${ITKM_I${t2}${d2}}" "${ITKT_I${t}${d}},${ITKT_I${t2}${d2}}")
        ENDIF(d2)
      ENDFOREACH(d)
#    ENDFOREACH(t2)
  ENDFOREACH(t)
END_WRAP_CLASS()
```
assistant