Skip to content

Commit 66d92bd

Browse files
committed
Rectpacking: Fixed bug that padding describes the minimum size.
Signed-off-by: Soeren Domroes <[email protected]>
1 parent 2bb24cf commit 66d92bd

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

plugins/org.eclipse.elk.alg.rectpacking/src/org/eclipse/elk/alg/rectpacking/RectPackingLayoutProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ public void layout(final ElkNode layoutGraph, final IElkProgressMonitor progress
138138
maxWidth = Math.max(minSize.x, drawing.getDrawingWidth());
139139

140140
// Run placement, compaction, and expansion (if enabled).
141-
drawing = secondIt.start(rectangles, maxWidth, minSize, progressMonitor, layoutGraph);
141+
drawing = secondIt.start(rectangles, maxWidth, minSize, progressMonitor, layoutGraph, padding);
142142
}
143143

144144
// Final touch.

plugins/org.eclipse.elk.alg.rectpacking/src/org/eclipse/elk/alg/rectpacking/seconditeration/RowFillingAndCompaction.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import org.eclipse.elk.alg.rectpacking.util.DrawingData;
1717
import org.eclipse.elk.alg.rectpacking.util.DrawingDataDescriptor;
1818
import org.eclipse.elk.alg.rectpacking.util.RectRow;
19+
import org.eclipse.elk.core.math.ElkPadding;
1920
import org.eclipse.elk.core.math.KVector;
2021
import org.eclipse.elk.core.util.IElkProgressMonitor;
2122
import org.eclipse.elk.graph.ElkNode;
@@ -69,7 +70,7 @@ public RowFillingAndCompaction(final double aspectRatio, final boolean expandNod
6970
* @return Drawing data for a produced drawing.
7071
*/
7172
public DrawingData start(final List<ElkNode> rectangles, final double maxWidth, final KVector minParentSize,
72-
final IElkProgressMonitor progressMonitor, final ElkNode layoutGraph) {
73+
final IElkProgressMonitor progressMonitor, final ElkNode layoutGraph, final ElkPadding padding) {
7374
// Initial placement for rectangles in blocks in each row.
7475
List<RectRow> rows = InitialPlacement.place(rectangles, maxWidth, nodeNodeSpacing);
7576

@@ -107,8 +108,8 @@ public DrawingData start(final List<ElkNode> rectangles, final double maxWidth,
107108
progressMonitor.logGraph(layoutGraph, "After compaction");
108109
}
109110

110-
double totalWidth = Math.max(this.drawingWidth, minParentSize.x);
111-
double minHeight = Math.max(this.drawingHeight, minParentSize.y);
111+
double totalWidth = Math.max(this.drawingWidth, minParentSize.x - padding.getHorizontal());
112+
double minHeight = Math.max(this.drawingHeight, minParentSize.y - padding.getVertical());
112113
double additionalHeight = minHeight - this.drawingHeight;
113114
if (expandNodes && expandToAspectRatio) {
114115
double aspectRatio = totalWidth / minHeight;

0 commit comments

Comments
 (0)