Changeset 14049 for branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.3D/3.3/BinPacking3D.cs
- Timestamp:
- 07/12/16 20:03:45 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.3D/3.3/BinPacking3D.cs
r14048 r14049 30 30 [Item("BinPacking3D", "Represents a single-bin packing for a 3D bin-packing problem.")] 31 31 [StorableClass] 32 public class BinPacking3D : BinPacking<PackingPosition, CuboidPackingShape, CuboidPackingItem> {33 34 public BinPacking3D( CuboidPackingShape binMeasures)32 public class BinPacking3D : BinPacking<PackingPosition, PackingShape, PackingItem> { 33 34 public BinPacking3D(PackingShape binMeasures) 35 35 : base(binMeasures) { 36 36 ExtremePoints = new SortedSet<PackingPosition>(new EPComparer3D()); … … 48 48 } 49 49 50 protected override void GenerateNewExtremePointsForNewItem( CuboidPackingItem newItem, PackingPosition position) {50 protected override void GenerateNewExtremePointsForNewItem(PackingItem newItem, PackingPosition position) { 51 51 int newWidth = position.Rotated ? newItem.Depth : newItem.Width; 52 52 int newDepth = position.Rotated ? newItem.Width : newItem.Depth; … … 146 146 } 147 147 148 public override PackingPosition FindExtremePointForItem( CuboidPackingItem measures, bool rotated, bool stackingConstraints) {149 150 CuboidPackingItem item = new CuboidPackingItem(148 public override PackingPosition FindExtremePointForItem(PackingItem measures, bool rotated, bool stackingConstraints) { 149 150 PackingItem item = new PackingItem( 151 151 rotated ? measures.Depth : measures.Width, 152 152 measures.Height, … … 170 170 } 171 171 172 public override PackingPosition FindPositionBySliding( CuboidPackingItem measures, bool rotated) {172 public override PackingPosition FindPositionBySliding(PackingItem measures, bool rotated) { 173 173 //Starting-position at upper right corner (=left bottom point of item-rectangle is at position item.width,item.height) 174 174 PackingPosition currentPosition = new PackingPosition(0, … … 197 197 } 198 198 199 public override void SlidingBasedPacking(ref List<int> sequence, ItemList< CuboidPackingItem> itemMeasures) {199 public override void SlidingBasedPacking(ref List<int> sequence, ItemList<PackingItem> itemMeasures) { 200 200 var temp = new List<int>(sequence); 201 201 for (int i = 0; i < temp.Count; i++) { … … 208 208 } 209 209 } 210 public override void SlidingBasedPacking(ref List<int> sequence, ItemList< CuboidPackingItem> itemMeasures, Dictionary<int, bool> rotationArray) {210 public override void SlidingBasedPacking(ref List<int> sequence, ItemList<PackingItem> itemMeasures, Dictionary<int, bool> rotationArray) { 211 211 var temp = new List<int>(sequence); 212 212 for (int i = 0; i < temp.Count; i++) { … … 219 219 } 220 220 } 221 public override void ExtremePointBasedPacking(ref List<int> sequence, ItemList< CuboidPackingItem> itemMeasures, bool stackingConstraints) {221 public override void ExtremePointBasedPacking(ref List<int> sequence, ItemList<PackingItem> itemMeasures, bool stackingConstraints) { 222 222 var temp = new List<int>(sequence); 223 223 foreach (int itemID in temp) { … … 230 230 } 231 231 } 232 public override void ExtremePointBasedPacking(ref List<int> sequence, ItemList< CuboidPackingItem> itemMeasures, bool stackingConstraints, Dictionary<int, bool> rotationArray) {232 public override void ExtremePointBasedPacking(ref List<int> sequence, ItemList<PackingItem> itemMeasures, bool stackingConstraints, Dictionary<int, bool> rotationArray) { 233 233 var temp = new List<int>(sequence); 234 234 foreach (int itemID in temp) { … … 271 271 return shortestSide; 272 272 } 273 public override bool IsStaticStable( CuboidPackingItem item, PackingPosition position) {273 public override bool IsStaticStable(PackingItem item, PackingPosition position) { 274 274 //Static stability is given, if item is placed on the ground 275 275 if (position.Y == 0) … … 314 314 } 315 315 316 public bool IsSupportedByAtLeastOnePoint( CuboidPackingItem item, PackingPosition position) {316 public bool IsSupportedByAtLeastOnePoint(PackingItem item, PackingPosition position) { 317 317 if (position.Y == 0) 318 318 return true; … … 326 326 return false; 327 327 } 328 public bool IsWeightSupported( CuboidPackingItem item, PackingPosition ep) {328 public bool IsWeightSupported(PackingItem item, PackingPosition ep) { 329 329 if (ep.Y == 0) 330 330 return true; … … 345 345 } 346 346 } 347 protected override void AddNewItemToOccupationLayers(int itemID, CuboidPackingItem measures, PackingPosition position) {347 protected override void AddNewItemToOccupationLayers(int itemID, PackingItem measures, PackingPosition position) { 348 348 int z1 = position.Z / 10; 349 349 int z2 = (position.Z + (position.Rotated ? measures.Width : measures.Depth)) / 10; … … 355 355 return OccupationLayers[position.Z / 10]; 356 356 } 357 protected override List<int> GetLayerItemIDs( CuboidPackingItem measures, PackingPosition position) {357 protected override List<int> GetLayerItemIDs(PackingItem measures, PackingPosition position) { 358 358 List<int> result = new List<int>(); 359 359 int z1 = position.Z / 10;
Note: See TracChangeset
for help on using the changeset viewer.