Hi,
I am creating an AABB struct that should be initialized in an invalid
state. Here is my actual code :
struct AABB(type, int dimensions)
{
static assert(dimensions == 2 || dimensions == 3);
VectorType min = Vector!(type, 3)(type.max, type.max, type.max);
VectorType max = Vector!(type, 3)(-type.max, -type.max, -type.max);
bool isValid() const
{
return max >= min;
}
private alias VectorType = Vector!(type, dimensions);
unittest
{
AABB2i aabbInt;
AABB2f aabbFloat;
assert(aabbInt.isValid == false);
assert(aabbFloat.isValid == false);
}
}
Using -type.max is close to what I want but for integer int.min is
different than -int.max.
In c++11 there is std::numeric_limits<T>::lowest() that works perfectly.
Can an equivalent property added to integer and floating types?
PS: I prefer to use border values to be sure that the AABB stay invalid
with a partial initialization, else using -1 and 1 give the same result ;-)