Cleanup: Use named function for math::Axis char constructor
It was too easy for implicit conversions to use this constructor by mistake, when values are often 0,1,2 in enum properties.
This commit is contained in:
@@ -61,9 +61,11 @@ class Axis {
|
||||
constexpr Axis(const Value axis) : axis_(axis){};
|
||||
|
||||
/** Convert an uppercase axis character 'X', 'Y' or 'Z' to an enum value. */
|
||||
constexpr explicit Axis(char axis_char) : axis_(static_cast<Value>(axis_char - 'X'))
|
||||
constexpr static Axis from_char(char axis_char)
|
||||
{
|
||||
BLI_assert(Value::X <= axis_ && axis_ <= Value::Z);
|
||||
const Axis axis = static_cast<Value>(axis_char - 'X');
|
||||
BLI_assert(int(Value::X) <= axis.as_int() && axis.as_int() <= int(Value::Z));
|
||||
return axis;
|
||||
}
|
||||
|
||||
/** Allow casting from DNA enums stored as short / int. */
|
||||
@@ -180,12 +182,12 @@ class AxisSigned {
|
||||
friend std::ostream &operator<<(std::ostream &stream, const AxisSigned axis);
|
||||
};
|
||||
|
||||
constexpr static bool operator<=(const Axis::Value a, const Axis::Value b)
|
||||
constexpr bool operator<=(const Axis::Value a, const Axis::Value b)
|
||||
{
|
||||
return int(a) <= int(b);
|
||||
}
|
||||
|
||||
constexpr static bool operator<=(const AxisSigned::Value a, const AxisSigned::Value b)
|
||||
constexpr bool operator<=(const AxisSigned::Value a, const AxisSigned::Value b)
|
||||
{
|
||||
return int(a) <= int(b);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user