Package org.apache.fop.layoutmgr
Class BreakingAlgorithm.BestRecords
java.lang.Object
org.apache.fop.layoutmgr.BreakingAlgorithm.BestRecords
- Direct Known Subclasses:
PageBreakingAlgorithm.BestPageRecords
- Enclosing class:
- BreakingAlgorithm
Class that stores, for each fitness class, the best active node that could start
a line of the corresponding fitness ending at the current element.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final double[]
private final int[]
private final int[]
private final double[]
private final int[]
private int
Points to the fitness class which currently leads to the best demerits.private final BreakingAlgorithm.KnuthNode[]
private static final double
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
addRecord
(double demerits, BreakingAlgorithm.KnuthNode node, double adjust, int availableShrink, int availableStretch, int difference, int fitness) Registers the new best active node for the given fitness class.double
getAdjust
(int fitness) int
getAvailableShrink
(int fitness) int
getAvailableStretch
(int fitness) double
getDemerits
(int fitness) int
getDifference
(int fitness) double
getNode
(int fitness) boolean
boolean
notInfiniteDemerits
(int fitness) void
reset()
Reset when a new breakpoint is being considered.
-
Field Details
-
INFINITE_DEMERITS
private static final double INFINITE_DEMERITS- See Also:
-
bestDemerits
private final double[] bestDemerits -
bestNode
-
bestAdjust
private final double[] bestAdjust -
bestDifference
private final int[] bestDifference -
bestAvailableShrink
private final int[] bestAvailableShrink -
bestAvailableStretch
private final int[] bestAvailableStretch -
bestIndex
private int bestIndexPoints to the fitness class which currently leads to the best demerits.
-
-
Constructor Details
-
BestRecords
public BestRecords()default constructor
-
-
Method Details
-
addRecord
public void addRecord(double demerits, BreakingAlgorithm.KnuthNode node, double adjust, int availableShrink, int availableStretch, int difference, int fitness) Registers the new best active node for the given fitness class.- Parameters:
demerits
- the total demerits of the new optimal set of breakpointsnode
- the node starting the line ending at the current elementadjust
- adjustment ratio of the current lineavailableShrink
- how much the current line can be shrinkedavailableStretch
- how much the current line can be stretcheddifference
- difference between the width of the considered line and the width of the "real" linefitness
- fitness class of the current line
-
hasRecords
public boolean hasRecords()- Returns:
- true if has records (best index not -1)
-
notInfiniteDemerits
public boolean notInfiniteDemerits(int fitness) - Parameters:
fitness
- fitness class (0, 1, 2 or 3, i.e. "tight" to "very loose")- Returns:
- true if there is a set of feasible breakpoints registered for the given fitness.
-
getDemerits
public double getDemerits(int fitness) - Parameters:
fitness
- to use- Returns:
- best demerits
-
getNode
- Parameters:
fitness
- to use- Returns:
- best node
-
getAdjust
public double getAdjust(int fitness) - Parameters:
fitness
- to use- Returns:
- adjustment
-
getAvailableShrink
public int getAvailableShrink(int fitness) - Parameters:
fitness
- to use- Returns:
- available shrink
-
getAvailableStretch
public int getAvailableStretch(int fitness) - Parameters:
fitness
- to use- Returns:
- available stretch
-
getDifference
public int getDifference(int fitness) - Parameters:
fitness
- to use- Returns:
- difference
-
getMinDemerits
public double getMinDemerits()- Returns:
- minimum demerits
-
reset
public void reset()Reset when a new breakpoint is being considered.
-