Arguments are:

index in

`vecInlineBreaks`of line breaking BP of last line,target line length,

type of text alignment.

Calculate line dimensions. The Line LayoutManager contains the
parameters `lineHeight`, `lead` and
`follow` as members, which it received from its Block
LayoutManager parent at construction. The Blo ckLayoutManager contains
these parameters as members as well, and has received them from a
`TextInfo` object in the method set
`BlockTextInfo`. The `TextInfo`
object has a reference to the `Font`
object. `lead` is the font ascender,
`follow` is the font descender.

The leading is the difference between
`lineHeight` and font height = ascender +
descender. The leading is split in two halves, one for above, the
other for below the line. The variable `lineLead` is
calculated as the distance from the baseline to the top of the line,
the variable `maxtb` is calculated as the distance
from the baseline to the bottom of the line. The variable
`middlefollow` set equal to `maxtb`.
These parameters correspond to the members `lead`,
`total` and `follow` of the
breakposs.

Find out the exact meaning of these.

Loop over the breakposs in

`vecInlineBreaks`:adjust

`lineLead`,`maxtb`and`middlefollow`if the corresponding dimension of the BP is larger;add the

`ipd`s; a BP does not just hold the`ipd`of the area since the previous BP, but the cumulative`ipd`for all the areas contributed by its layout manager; therefore care is taken to add only the`ipd`of the last BP of each LM; more precisely, the`ipd`of the last BP of the previous LM is added when the next LM is encountered;

Add the

`ipd`of the last BP.Resolve the trailing space of the last BP.

Adjust

`middlefollow`if it is smaller than`maxtb - lineHeight`.Calculate the stretch or shrink factor

`ipdAdjust`for the stretch- and shrinkable elements in this line:if content optimum is larger than line length optimum,

if content minimum is smaller than line length optimum,

calculate

`ipdAdjust`between 0 and -1, real line length = line length optimum,

else (content minimum is larger than line length optimum)

`ipdAdjust = -1`, real line length = content minimum,

else (content optimum is smaller than line length optimum),

if content maximum is larger than line length optimum,

calculate

`ipdAdjust`between 0 and 1, real line length = line length optimum,

else (content maximum is smaller than line length optimum),

`ipdAdjust = 1`, real line length = content maximum.

Calculate the stretch or shrink factor

`dAdjust`for white space and the indent:justify: calculate

`dAdjust`,center or end: calculate the required indent.

Create a new

`LineBreakPosition`based on this LM, the last BP in`vecInlineBreaks`and the calculated dimensions; use`lineLead`for the baseline position and`lineLead + middlefollow`for the`lineHeight`.Create a

`BreakPoss`from this`LineBreakPosition`object.Mark the BP as last if this LM is finished.

Set the stacking size of the BP (

`bpd`) equal to`lineLead + middlefollow`.