Fix regression in the recent unit system change
Resolves unit tests failure since the D15085. Also addressed API documentation and formatting format. Differential Revision: https://developer.blender.org/D15162
This commit is contained in:
parent
a24a28db7b
commit
9670c649d8
|
@ -19,6 +19,10 @@ struct UnitSettings;
|
|||
*/
|
||||
size_t BKE_unit_value_as_string_adaptive(
|
||||
char *str, int len_max, double value, int prec, int system, int type, bool split, bool pad);
|
||||
/**
|
||||
* Representation of a value in units. Negative precision is used to disable stripping of zeroes.
|
||||
* This reduces text jumping when changing values.
|
||||
*/
|
||||
size_t BKE_unit_value_as_string(char *str,
|
||||
int len_max,
|
||||
double value,
|
||||
|
|
|
@ -462,11 +462,6 @@ static size_t unit_as_string(char *str,
|
|||
double value_conv = (value / unit->scalar) - unit->bias;
|
||||
bool strip_skip = false;
|
||||
|
||||
/* Adjust precision to expected number of significant digits.
|
||||
* Note that here, we shall not have to worry about very big/small numbers, units are expected
|
||||
* to replace 'scientific notation' in those cases. */
|
||||
prec -= integer_digits_d(value_conv);
|
||||
|
||||
/* Negative precision is used to disable stripping of zeroes.
|
||||
* This reduces text jumping when changing values. */
|
||||
if (prec < 0) {
|
||||
|
@ -474,6 +469,11 @@ static size_t unit_as_string(char *str,
|
|||
prec *= -1;
|
||||
}
|
||||
|
||||
/* Adjust precision to expected number of significant digits.
|
||||
* Note that here, we shall not have to worry about very big/small numbers, units are expected
|
||||
* to replace 'scientific notation' in those cases. */
|
||||
prec -= integer_digits_d(value_conv);
|
||||
|
||||
CLAMP(prec, 0, 6);
|
||||
|
||||
/* Convert to a string. */
|
||||
|
@ -491,10 +491,10 @@ static size_t unit_as_string(char *str,
|
|||
while (i > 0 && str[i] == '0') { /* 4.300 -> 4.3 */
|
||||
str[i--] = pad;
|
||||
}
|
||||
}
|
||||
|
||||
if (i > 0 && str[i] == '.') { /* 10. -> 10 */
|
||||
str[i--] = pad;
|
||||
if (i > 0 && str[i] == '.') { /* 10. -> 10 */
|
||||
str[i--] = pad;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue