| #include "rive/math/math_types.hpp" | |
| #include "rive/data_bind/converters/data_converter_rounder.hpp" | |
| #include "rive/data_bind/data_values/data_value_number.hpp" | |
| using namespace rive; | |
| DataValue* DataConverterRounder::convert(DataValue* input, DataBind* dataBind) | |
| { | |
| if (input->is<DataValueNumber>()) | |
| { | |
| float value = input->as<DataValueNumber>()->value(); | |
| auto numberOfPlaces = decimals(); | |
| // TODO: @hernan review this way of rounding | |
| float rounder = pow(10.0f, (float)numberOfPlaces); | |
| m_output.value(std::round(value * rounder) / rounder); | |
| } | |
| else | |
| { | |
| m_output.value(DataValueNumber::defaultValue); | |
| } | |
| return &m_output; | |
| } |