- Grob *column = h->get_column ();
- int rank = Paper_column::get_rank (column);
-
- Interval head_extent = h->extent (column, X_AXIS);
- Direction vdir = Direction (sign (pos));
- if (!vdir)
- continue;
-
- Interval prev_extent;
-
- Head_extents_map::iterator j = head_extents.find (rank);
- if (j != head_extents.end ())
- prev_extent = (*j).second[vdir];
- else
- columns[rank] = column;
-
- prev_extent.unite (head_extent);
- head_extents[rank][vdir] = prev_extent;
- }
- }
-
- for (Column_map::const_iterator c (columns.begin ()); c != columns.end (); c++)
- {
- Grob *column = (*c).second;
- int rank = (*c).first;
-
- int next_rank = rank + 2;
-
- if (head_extents.find (next_rank) != head_extents.end ())
- {
- Drul_array<Interval> extents_left = head_extents[rank];
- Drul_array<Interval> extents_right = head_extents[next_rank];
-
- Direction d = DOWN;