Surfaces/TrapezoidBounds doesn't define all internal angles (was ACTS-278)
Original author Shaun Roe @sroe
TrapezoidBounds is instantiated either with two half lengths and two angles (a general asymmetric trapezoid) or three half lengths (a specific case of the latter which is symmetric about the y axis). If a symmetric trapezoid is constructed, it sets the two angles at zero, so the methods alpha() and beta() give misleading information. If an asymmetric trapezoid is constructed, the method maxHalflengthX() seems to in fact return the minhalfLengthX... which is at best counterintuitive.
The proposed solution (if this is still to be treated as one object, and not two) is to remove the maxHalflengthX() getter method and to always calculate the alpha and beta angles correctly. An alternative (if the interface is to be preserved) might be to calculate the true maximum x extent also for the asymmetric case..