switch (_pointCloudProviderInfo.pointCloudFormat->type) \
{ \
case visionx::PointContentType::ePoints: \
F<pcl::PointXYZ>(); \
break; \
case visionx::PointContentType::eColoredPoints: \
F<pcl::PointXYZRGBA>(); \
break; \
case visionx::PointContentType::eColoredOrientedPoints: \
F<pcl::PointXYZRGBNormal>(); \
break; \
case visionx::PointContentType::eLabeledPoints: \
F<pcl::PointXYZL>(); \
break; \
case visionx::PointContentType::eColoredLabeledPoints: \
F<pcl::PointXYZRGBL>(); \
break; \
case visionx::PointContentType::eIntensity: \
F<pcl::PointXYZI>(); \
break; \
case visionx::PointContentType::eOrientedPoints: \
ARMARX_ERROR << "eOrientedPoints NOT HANDLED IN VISIONX"; \
[[fallthrough]]; \
default: \
ARMARX_ERROR << "Could not call " #F ", because format '" \
<< _pointCloudProviderInfo.pointCloudFormat->type << "' is unknown"; \
} \
do \
{ \
} while (false)