Return 0 volume for empty AlignedBox

This commit is contained in:
Sotiris Papatheodorou 2024-03-04 17:32:44 +00:00 committed by Charles Schlosser
parent 64edfbed04
commit 251ec42087
2 changed files with 5 additions and 1 deletions

View File

@ -173,7 +173,7 @@ class AlignedBox {
}
/** \returns the volume of the bounding box */
EIGEN_DEVICE_FUNC inline Scalar volume() const { return sizes().prod(); }
EIGEN_DEVICE_FUNC inline Scalar volume() const { return isEmpty() ? Scalar(0) : sizes().prod(); }
/** \returns an expression for the bounding box diagonal vector
* if the length of the diagonal is needed: diagonal().norm()

View File

@ -51,6 +51,8 @@ void alignedbox(const BoxType& box) {
kill_extra_precision(p0);
kill_extra_precision(p1);
VERIFY(numext::equal_strict(b0.volume(), Scalar(0)));
b0.extend(p0);
b0.extend(p1);
VERIFY(b0.contains(p0 * s1 + (Scalar(1) - s1) * p1));
@ -423,6 +425,8 @@ void alignedboxCastTests(const BoxType& box) {
BoxType b0(dim);
VERIFY(numext::equal_strict(b0.volume(), Scalar(0)));
b0.extend(p0);
b0.extend(p1);