clang-tidy: fix bugprone-incorrect-roundings lints

Adding `0.5` is not correct in all cases. Namely, adding `0.5` will
cause the value immediately before it to be rounded to `1` due to the
"round to nearest even" rule. Trust the standard library to get this
right.
This commit is contained in:
Ben Boeckel 2023-05-05 12:10:54 -04:00
parent 0ce73eb680
commit 1541cfa8a6

@ -10,6 +10,8 @@
#ifndef vtk_m_worklet_colorconversion_Conversions_h
#define vtk_m_worklet_colorconversion_Conversions_h
#include <cmath>
namespace vtkm
{
namespace worklet
@ -26,13 +28,13 @@ VTKM_EXEC inline vtkm::UInt8 ColorToUChar(T t)
template <>
VTKM_EXEC inline vtkm::UInt8 ColorToUChar(vtkm::Float64 t)
{
return static_cast<vtkm::UInt8>(t * 255.0f + 0.5f);
return static_cast<vtkm::UInt8>(std::round(t * 255.0f));
}
template <>
VTKM_EXEC inline vtkm::UInt8 ColorToUChar(vtkm::Float32 t)
{
return static_cast<vtkm::UInt8>(t * 255.0f + 0.5f);
return static_cast<vtkm::UInt8>(std::round(t * 255.0f));
}