Changeset 15820 for branches/2817-BinPackingSpeedup/HeuristicLab.Problems.BinPacking/3.3/3D/Packer/BinPackerMinRSLeft.cs
- Timestamp:
- 02/28/18 14:05:31 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2817-BinPackingSpeedup/HeuristicLab.Problems.BinPacking/3.3/3D/Packer/BinPackerMinRSLeft.cs
r15801 r15820 68 68 } 69 69 70 ExtremePointPruningFactory.CreatePruning( ).PruneExtremePoints(epPruningMethod,packingList);70 ExtremePointPruningFactory.CreatePruning(epPruningMethod).PruneExtremePoints(packingList); 71 71 72 72 return packingList; … … 92 92 } 93 93 94 ExtremePointPruningFactory.CreatePruning( ).PruneExtremePoints(epPruningMethod,packingList);94 ExtremePointPruningFactory.CreatePruning(epPruningMethod).PruneExtremePoints(packingList); 95 95 } 96 96 … … 107 107 protected virtual void PackRemainingItems(ref IList<int> remainingIds, ref BinPacking3D packingBin, IList<PackingItem> items, ExtremePointCreationMethod epCreationMethod, bool useStackingConstraints) { 108 108 IExtremePointCreator extremePointCreator = ExtremePointCreatorFactory.CreateExtremePointCreator(epCreationMethod, useStackingConstraints); 109 109 110 110 var remainingNotWeightSupportedItems = new List<int>(); 111 111 foreach (var itemId in new List<int>(remainingIds)) { 112 var item = items[itemId]; 112 var item = items[itemId]; 113 var clonedPackingBin = packingBin.Clone() as BinPacking3D; 114 ExtremePointPruningFactory.CreatePruning(ExtremePointPruningMethod.PruneBehind).PruneExtremePoints(clonedPackingBin, item.Layer - 1); 113 115 114 116 // If an item doesn't support any weight it should have a minimum waste of the residual space. … … 119 121 remainingNotWeightSupportedItems.Add(itemId); 120 122 } else if (!item.IsStackabel) { 121 PackingPosition position = FindPackingPositionForNotStackableItem( packingBin, item, useStackingConstraints);123 PackingPosition position = FindPackingPositionForNotStackableItem(clonedPackingBin, item, useStackingConstraints); 122 124 // if a valid packing position could be found, the current item can be added to the given bin 123 125 if (position != null) { … … 126 128 } 127 129 } else { 128 PackingPosition position = FindPackingPositionForItem( packingBin, item, useStackingConstraints);130 PackingPosition position = FindPackingPositionForItem(clonedPackingBin, item, useStackingConstraints); 129 131 // if a valid packing position could be found, the current item can be added to the given bin 130 132 if (position != null) { … … 140 142 PackingPosition position = null; 141 143 if (weightSupportedLeft) { 142 position = FindPackingPositionForWeightUnsupportedItem( packingBin, item, useStackingConstraints);144 position = FindPackingPositionForWeightUnsupportedItem(clonedPackingBin, item, useStackingConstraints); 143 145 } else { 144 position = FindPackingPositionForItem( packingBin, item, useStackingConstraints);146 position = FindPackingPositionForItem(clonedPackingBin, item, useStackingConstraints); 145 147 } 146 148
Note: See TracChangeset
for help on using the changeset viewer.