When setting -D_GLIBCXX_ASSERTIONS, invalid vector accesses are found,
like empty_vector.back(). In this case, the result was not used so the
bug wasn't found without the assertion.
This changeset fixes so dragging a brush to 0 size does not crash/abort
netradiant.
Closes #156.
/// If \p winding is completely in back of the plane, \p clipped will be empty.
/// If \p winding intersects the plane, the edge of \p clipped which lies on \p clipPlane will store the value of \p adjacent.
void Winding_Clip( const FixedWinding& winding, const Plane3& plane, const Plane3& clipPlane, std::size_t adjacent, FixedWinding& clipped ){
+ // if there are no points, we're done
+ if ( winding.size() == 0 ) {
+ return;
+ }
PlaneClassification classification = Winding_ClassifyDistance( plane3_distance_to_point( clipPlane, winding.back().vertex ), ON_EPSILON );
PlaneClassification nextClassification;
// for each edge