vector<Column_x_positions>
Constrained_breaking::best_solution (vsize start, vsize end)
{
- vsize min_systems = min_system_count (start, end);
+ vsize min_systems = min_system_count (start, end);
vsize max_systems = max_system_count (start, end);
Real best_demerits = infinity_f;
vector<Column_x_positions> best_so_far;
int
Constrained_breaking::max_system_count (vsize start, vsize end)
{
- vsize brk = (end >= start_.size ()) ? breaks_.size () : starting_breakpoints_[end];
+ vsize brk = (end >= start_.size ()) ? breaks_.size () - 1 : starting_breakpoints_[end];
return brk - starting_breakpoints_[start];
}
line.turn_permission_ = min_permission (line.page_permission_,
line.turn_permission_);
- line.extent_ = extent.is_empty () ? Interval (0, 0) : extent;
+ line.extent_ = (extent.is_empty ()
+ || isnan (extent[LEFT])
+ || isnan (extent[RIGHT]))
+ ? Interval (0, 0) : extent;
line.padding_ = padding;
line.space_ = space;
line.inverse_hooke_ = extent.length () + space;