Skip to content

Commit

Permalink
Disable point calculation if point cannot be located
Browse files Browse the repository at this point in the history
  • Loading branch information
skjolber committed Aug 25, 2023
1 parent fa04737 commit 714891e
Showing 1 changed file with 30 additions and 16 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.github.skjolber.packing.visualizer.packaging;

import java.util.List;
import java.util.logging.Logger;

import com.github.skjolber.packing.api.Container;
import com.github.skjolber.packing.api.ContainerStackValue;
Expand All @@ -19,7 +20,12 @@

public class DefaultPackagingResultVisualizerFactory extends AbstractPackagingResultVisualizerFactory<Container> {

private static final Logger LOGGER = Logger.getLogger(DefaultPackagingResultVisualizerFactory.class.getName());

public PackagingResultVisualizer visualize(List<Container> inputContainers) {

boolean calculatePoints = true;

int step = 0;
PackagingResultVisualizer visualization = new PackagingResultVisualizer();
for (Container inputContainer : inputContainers) {
Expand Down Expand Up @@ -69,22 +75,30 @@ public PackagingResultVisualizer visualize(List<Container> inputContainers) {
stackPlacement.setStackable(boxVisualization);
stackPlacement.setStep(step);

int pointIndex = extremePoints.findPoint(placement.getAbsoluteX(), placement.getAbsoluteY(), placement.getAbsoluteZ());

extremePoints.add(pointIndex, placement);

for (Point3D<StackPlacement> point : extremePoints.getValues()) {
PointVisualizer p = new PointVisualizer();

p.setX(point.getMinX());
p.setY(point.getMinY());
p.setZ(point.getMinZ());

p.setDx(point.getMaxX() - point.getMinX() + 1);
p.setDy(point.getMaxY() - point.getMinY() + 1);
p.setDz(point.getMaxZ() - point.getMinZ() + 1);

stackPlacement.add(p);
if(calculatePoints) {
int pointIndex = extremePoints.findPoint(placement.getAbsoluteX(), placement.getAbsoluteY(), placement.getAbsoluteZ());

if(pointIndex == -1) {
LOGGER.info("Unable to find next point, disabling further calculation of points");

calculatePoints = false;
} else {
extremePoints.add(pointIndex, placement);

for (Point3D<StackPlacement> point : extremePoints.getValues()) {
PointVisualizer p = new PointVisualizer();

p.setX(point.getMinX());
p.setY(point.getMinY());
p.setZ(point.getMinZ());

p.setDx(point.getMaxX() - point.getMinX() + 1);
p.setDy(point.getMaxY() - point.getMinY() + 1);
p.setDz(point.getMaxZ() - point.getMinZ() + 1);

stackPlacement.add(p);
}
}
}

stackVisualization.add(stackPlacement);
Expand Down

0 comments on commit 714891e

Please sign in to comment.