Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
07/12/16 18:23:13 (8 years ago)
Author:
gkronber
Message:

#1966: removed types for *PackingBin because PackingBins and PackingShapes have the same capabilities

Location:
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/BinPacking2D.cs

    r14040 r14045  
    2828using HeuristicLab.Common;
    2929using HeuristicLab.Problems.BinPacking.Dimensions;
    30 using HeuristicLab.Problems.BinPacking.PackingBin;
     30
     31using HeuristicLab.Problems.BinPacking.Shapes;
    3132
    3233namespace HeuristicLab.Encodings.PackingEncoding.PackingPlan {
    3334  [Item("BinPacking2D", "Represents a single-bin packing for a 2D bin-packing problem.")]
    3435  [StorableClass]
    35   public class BinPacking2D : BinPacking<TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem> {
    36 
    37     public BinPacking2D(RectangularPackingBin binMeasures)
     36  public class BinPacking2D : BinPacking<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem> {
     37
     38    public BinPacking2D(RectangularPackingShape binMeasures)
    3839      : base(binMeasures) {
    3940      ExtremePoints = new SortedSet<TwoDimensionalPacking>(new EPComparer2D());
  • branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/Decoders/BL/BottomLeftGroupingVectorDecoder.cs

    r13607 r14045  
    2424using HeuristicLab.Core;
    2525using HeuristicLab.Problems.BinPacking.Dimensions;
    26 using HeuristicLab.Problems.BinPacking.PackingBin;
     26
    2727using HeuristicLab.Problems.BinPacking.PackingItem;
    2828using HeuristicLab.Encodings.PackingEncoding.PackingPlan;
     
    3131using HeuristicLab.Encodings.PackingEncoding.GroupingVector;
    3232using HeuristicLab.Problems.BinPacking2D;
     33using HeuristicLab.Problems.BinPacking.Shapes;
    3334
    3435namespace HeuristicLab.Problems.BinPacking.Decoders {
    3536  [Item("Identical bin two dimensional grouping vector decoder", "<Description missing...>")]
    3637  [StorableClass]
    37   public class BottomLeftGroupingVectorDecoder : PackingSolutionDecoder<TwoDimensionalPacking, RectangularPackingBin,RectangularPackingItem>, I2DGVDecoder {
     38  public class BottomLeftGroupingVectorDecoder : PackingSolutionDecoder<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem>, I2DGVDecoder {
    3839    public BottomLeftGroupingVectorDecoder() : base() {}
    3940    [StorableConstructor]
     
    4647    }
    4748
    48     public override PackingPlan<TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem> CreatePackingPlanFromEncoding(IItem encodedSolution, RectangularPackingBin binMeasures, ItemList<RectangularPackingItem> itemMeasures) {
     49    public override PackingPlan<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem> CreatePackingPlanFromEncoding(IItem encodedSolution, RectangularPackingShape binMeasures, ItemList<RectangularPackingItem> itemMeasures) {
    4950      var solution = encodedSolution as GroupingVectorEncoding;
    5051      if (solution == null) throw new InvalidOperationException("Encoding is not of type GroupingVector");
  • branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/Decoders/BL/BottomLeftMultiComponentVectorDecoder.cs

    r13606 r14045  
    2424using HeuristicLab.Core;
    2525using HeuristicLab.Problems.BinPacking.Dimensions;
    26 using HeuristicLab.Problems.BinPacking.PackingBin;
    2726using HeuristicLab.Problems.BinPacking.PackingItem;
    2827using HeuristicLab.Encodings.PackingEncoding.PackingPlan;
     
    3130using HeuristicLab.Encodings.PackingEncoding.MultiComponentVector;
    3231using HeuristicLab.Problems.BinPacking2D;
     32using HeuristicLab.Problems.BinPacking.Shapes;
    3333
    3434namespace HeuristicLab.Problems.BinPacking.Decoders {
    3535  [Item("Identical bin two dimensional multi component vector decoder", "<Description missing...>")]
    3636  [StorableClass]
    37   public class BottomLeftMultiComponentVectorDecoder : PackingSolutionDecoder<TwoDimensionalPacking,RectangularPackingBin, RectangularPackingItem>, I2DMCVDecoder {
     37  public class BottomLeftMultiComponentVectorDecoder : PackingSolutionDecoder<TwoDimensionalPacking,RectangularPackingShape, RectangularPackingItem>, I2DMCVDecoder {
    3838    public BottomLeftMultiComponentVectorDecoder() : base() {}
    3939    [StorableConstructor]
     
    4646    }
    4747
    48     public override PackingPlan<TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem> CreatePackingPlanFromEncoding(IItem encodedSolution, RectangularPackingBin binMeasures, ItemList<RectangularPackingItem> itemMeasures) {
     48    public override PackingPlan<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem> CreatePackingPlanFromEncoding(IItem encodedSolution, RectangularPackingShape binMeasures, ItemList<RectangularPackingItem> itemMeasures) {
    4949      var solution = encodedSolution as MultiComponentVectorEncoding;
    5050      if (solution == null) throw new InvalidOperationException("Encoding is not of type MultiComponent Vector");
  • branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/Decoders/BL/BottomLeftPackingSequenceDecoder.cs

    r13607 r14045  
    2525using HeuristicLab.Core;
    2626using HeuristicLab.Problems.BinPacking.Dimensions;
    27 using HeuristicLab.Problems.BinPacking.PackingBin;
     27
    2828using HeuristicLab.Problems.BinPacking.PackingItem;
    2929using HeuristicLab.Encodings.PackingEncoding.PackingPlan;
     
    3232using HeuristicLab.Problems.BinPacking.Interfaces;
    3333using HeuristicLab.Problems.BinPacking2D;
     34using HeuristicLab.Problems.BinPacking.Shapes;
    3435
    3536namespace HeuristicLab.Problems.BinPacking.Decoders {
    3637  [Item("Identical bin, two dimensional, direct permutation decoder", "<Description missing...>")]
    3738  [StorableClass]
    38   public class BottomLeftPackingSequenceDecoder : PackingSolutionDecoder<TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem>, I2DPSDecoder {
     39  public class BottomLeftPackingSequenceDecoder : PackingSolutionDecoder<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem>, I2DPSDecoder {
    3940
    4041    public BottomLeftPackingSequenceDecoder(): base() { }
     
    4849    }
    4950
    50     public override PackingPlan<TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem> CreatePackingPlanFromEncoding(IItem encodedSolution, RectangularPackingBin binMeasures, ItemList<RectangularPackingItem> itemMeasures) {
     51    public override PackingPlan<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem> CreatePackingPlanFromEncoding(IItem encodedSolution, RectangularPackingShape binMeasures, ItemList<RectangularPackingItem> itemMeasures) {
    5152      var solution = encodedSolution as PackingSequenceEncoding;
    5253      if (solution == null) throw new InvalidOperationException("Encoding is not of type PackingSequence");
  • branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/Decoders/EP/ExtremePointGroupingVectorDecoder2D.cs

    r13607 r14045  
    2525using HeuristicLab.Core;
    2626using HeuristicLab.Problems.BinPacking.Dimensions;
    27 using HeuristicLab.Problems.BinPacking.PackingBin;
     27
    2828using HeuristicLab.Problems.BinPacking.PackingItem;
    2929using HeuristicLab.Encodings.PackingEncoding.PackingPlan;
     
    3232using HeuristicLab.Encodings.PackingEncoding.GroupingVector;
    3333using HeuristicLab.Problems.BinPacking2D;
     34using HeuristicLab.Problems.BinPacking.Shapes;
    3435
    3536namespace HeuristicLab.Problems.BinPacking.Decoders {
    3637  [Item("Identical bin, two dimensional, extreme points based decoder for the GroupingVector encoding.", "<Description missing...>")]
    3738  [StorableClass]
    38   public class ExtremePointGroupingVectorDecoder2D : PackingSolutionDecoder<TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem>, I2DGVDecoder {
     39  public class ExtremePointGroupingVectorDecoder2D : PackingSolutionDecoder<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem>, I2DGVDecoder {
    3940    public ExtremePointGroupingVectorDecoder2D () : base() {}
    4041    [StorableConstructor]
     
    4748    }
    4849
    49     public static PackingPlan<TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem> Decode(GroupingVectorEncoding solution, RectangularPackingBin binMeasures, ItemList<RectangularPackingItem> itemMeasures) {
     50    public static PackingPlan<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem> Decode(GroupingVectorEncoding solution, RectangularPackingShape binMeasures, ItemList<RectangularPackingItem> itemMeasures) {
    5051      PackingPlan2D result = new PackingPlan2D(binMeasures, true, false);
    5152      result.Pack(solution, itemMeasures);
     
    5354    }
    5455
    55     public override PackingPlan<TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem> CreatePackingPlanFromEncoding(IItem encodedSolution, RectangularPackingBin binMeasures, ItemList<RectangularPackingItem> itemMeasures) {
     56    public override PackingPlan<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem> CreatePackingPlanFromEncoding(IItem encodedSolution, RectangularPackingShape binMeasures, ItemList<RectangularPackingItem> itemMeasures) {
    5657      var solution = encodedSolution as GroupingVectorEncoding;
    5758      if (solution == null) throw new InvalidOperationException("Encoding is not of type GroupingVector");
  • branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/Decoders/EP/ExtremePointMultiComponentVectorDecoder2D.cs

    r13607 r14045  
    2424using HeuristicLab.Core;
    2525using HeuristicLab.Problems.BinPacking.Dimensions;
    26 using HeuristicLab.Problems.BinPacking.PackingBin;
     26
    2727using HeuristicLab.Problems.BinPacking.PackingItem;
    2828using HeuristicLab.Encodings.PackingEncoding.PackingPlan;
     
    3131using HeuristicLab.Encodings.PackingEncoding.MultiComponentVector;
    3232using HeuristicLab.Problems.BinPacking2D;
     33using HeuristicLab.Problems.BinPacking.Shapes;
    3334
    3435namespace HeuristicLab.Problems.BinPacking.Decoders {
    3536  [Item("Identical bin, two dimensional, extreme points based decoder for the MultiComponentVector encoding.", "<Description missing...>")] // TODO
    3637  [StorableClass]
    37   public class ExtremePointMultiComponentVectorDecoder2D : PackingSolutionDecoder<TwoDimensionalPacking,RectangularPackingBin, RectangularPackingItem>, I2DMCVDecoder {
     38  public class ExtremePointMultiComponentVectorDecoder2D : PackingSolutionDecoder<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem>, I2DMCVDecoder {
    3839    public ExtremePointMultiComponentVectorDecoder2D () : base() {}
    3940    [StorableConstructor]
     
    4647    }
    4748
    48     public static PackingPlan<TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem> Decode(MultiComponentVectorEncoding solution, RectangularPackingBin binMeasures, ItemList<RectangularPackingItem> itemMeasures) {
     49    public static PackingPlan<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem> Decode(MultiComponentVectorEncoding solution, RectangularPackingShape binMeasures, ItemList<RectangularPackingItem> itemMeasures) {
    4950      PackingPlan2D result = new PackingPlan2D(binMeasures, true, false);
    5051      result.Pack(solution, itemMeasures);
     
    5253    }
    5354
    54     public override PackingPlan<TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem> CreatePackingPlanFromEncoding(IItem encodedSolution, RectangularPackingBin binMeasures, ItemList<RectangularPackingItem> itemMeasures) {
     55    public override PackingPlan<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem> CreatePackingPlanFromEncoding(IItem encodedSolution, RectangularPackingShape binMeasures, ItemList<RectangularPackingItem> itemMeasures) {
    5556      var solution = encodedSolution as MultiComponentVectorEncoding;
    5657      if (solution == null) throw new InvalidOperationException("Encoding is not of type MultiComponentVector");
  • branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/Decoders/EP/ExtremePointPackingSequenceDecoder2D.cs

    r13607 r14045  
    2525using HeuristicLab.Core;
    2626using HeuristicLab.Problems.BinPacking.Dimensions;
    27 using HeuristicLab.Problems.BinPacking.PackingBin;
    2827using HeuristicLab.Problems.BinPacking.PackingItem;
    2928using HeuristicLab.Encodings.PackingEncoding.PackingPlan;
     
    3231using HeuristicLab.Problems.BinPacking.Interfaces;
    3332using HeuristicLab.Problems.BinPacking2D;
     33using HeuristicLab.Problems.BinPacking.Shapes;
    3434
    3535namespace HeuristicLab.Problems.BinPacking.Decoders {
    3636  [Item("Identical bin, two dimensional, extreme points based decoder for the PackingSequence encoding.", "<Description missing...>")] // TODO
    3737  [StorableClass]
    38   public class ExtremePointPackingSequenceDecoder2D : PackingSolutionDecoder<TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem>, I2DPSDecoder {
     38  public class ExtremePointPackingSequenceDecoder2D : PackingSolutionDecoder<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem>, I2DPSDecoder {
    3939    public ExtremePointPackingSequenceDecoder2D () : base() {}
    4040    [StorableConstructor]
     
    4848
    4949
    50     public override PackingPlan<TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem> CreatePackingPlanFromEncoding(IItem encodedSolution, RectangularPackingBin binMeasures, ItemList<RectangularPackingItem> itemMeasures) {
     50    public override PackingPlan<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem> CreatePackingPlanFromEncoding(IItem encodedSolution, RectangularPackingShape binMeasures, ItemList<RectangularPackingItem> itemMeasures) {
    5151      var solution = encodedSolution as PackingSequenceEncoding;
    5252      if (solution == null) throw new InvalidOperationException("Encoding is not of type PackingSequence");
  • branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/HeuristicLab.Problems.BinPacking2D-3.3.csproj

    r13611 r14045  
    177177    <Compile Include="Properties\AssemblyInfo.cs" />
    178178    <Compile Include="RectangularIdenticalBinPackingProblem.cs" />
    179     <Compile Include="RectangularPackingBin.cs" />
    180179    <Compile Include="RectangularPackingItem.cs" />
    181180    <Compile Include="RectangularPackingShape.cs" />
  • branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/MoveEvaluators/PackingMoveEvaluator2DGV.cs

    r13607 r14045  
    2626using HeuristicLab.Problems.BinPacking.Dimensions;
    2727using HeuristicLab.Problems.BinPacking.Interfaces;
    28 using HeuristicLab.Problems.BinPacking.PackingBin;
     28
    2929using HeuristicLab.Problems.BinPacking.PackingItem;
     30using HeuristicLab.Problems.BinPacking.Shapes;
    3031using HeuristicLab.Problems.BinPacking2D.Interfaces;
    3132
     
    3334  [Item("GroupingVectorMoveEvaluator2D", "Class for evaluating packing moves for 2dimensional problems.")]
    3435  [StorableClass]
    35   public class PackingMoveEvaluator2DGV : PackingMoveEvaluator<TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem>, ISingleObjectiveMoveEvaluator, IGroupingVectorMoveOperator, I2DOperator {
     36  public class PackingMoveEvaluator2DGV : PackingMoveEvaluator<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem>, ISingleObjectiveMoveEvaluator, IGroupingVectorMoveOperator, I2DOperator {
    3637    [StorableConstructor]
    3738    protected PackingMoveEvaluator2DGV(bool deserializing) : base(deserializing) { }
  • branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/MoveEvaluators/PackingMoveEvaluator2DMCV.cs

    r13607 r14045  
    2626using HeuristicLab.Problems.BinPacking.Dimensions;
    2727using HeuristicLab.Problems.BinPacking.Interfaces;
    28 using HeuristicLab.Problems.BinPacking.PackingBin;
     28
    2929using HeuristicLab.Problems.BinPacking.PackingItem;
     30using HeuristicLab.Problems.BinPacking.Shapes;
    3031using HeuristicLab.Problems.BinPacking2D.Interfaces;
    3132
     
    3334  [Item("MultiComponentVectorMoveEvaluator2D", "Class for evaluating packing moves for 2dimensional problems.")]
    3435  [StorableClass]
    35   public class PackingMoveEvaluator2DMCV : PackingMoveEvaluator<TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem>, ISingleObjectiveMoveEvaluator, IMultiComponentVectorMoveOperator, I2DOperator {
     36  public class PackingMoveEvaluator2DMCV : PackingMoveEvaluator<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem>, ISingleObjectiveMoveEvaluator, IMultiComponentVectorMoveOperator, I2DOperator {
    3637    [StorableConstructor]
    3738    protected PackingMoveEvaluator2DMCV(bool deserializing) : base(deserializing) { }
  • branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/MoveEvaluators/PackingMoveEvaluator2DPS.cs

    r13607 r14045  
    2626using HeuristicLab.Problems.BinPacking.Dimensions;
    2727using HeuristicLab.Problems.BinPacking.Interfaces;
    28 using HeuristicLab.Problems.BinPacking.PackingBin;
     28
    2929using HeuristicLab.Problems.BinPacking.PackingItem;
     30using HeuristicLab.Problems.BinPacking.Shapes;
    3031using HeuristicLab.Problems.BinPacking2D.Interfaces;
    3132
     
    3334  [Item("PackingSequenceMoveEvaluator2D", "Class for evaluating packing moves for 2dimensional problems.")]
    3435  [StorableClass]
    35   public class PackingMoveEvaluator2DPS : PackingMoveEvaluator<TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem>, ISingleObjectiveMoveEvaluator, IPackingSequenceMoveOperator, I2DOperator {
     36  public class PackingMoveEvaluator2DPS : PackingMoveEvaluator<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem>, ISingleObjectiveMoveEvaluator, IPackingSequenceMoveOperator, I2DOperator {
    3637    [StorableConstructor]
    3738    protected PackingMoveEvaluator2DPS(bool deserializing) : base(deserializing) { }
  • branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/PackingPlan2D.cs

    r13611 r14045  
    2525using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2626using HeuristicLab.Problems.BinPacking.Dimensions;
    27 using HeuristicLab.Problems.BinPacking.PackingBin;
     27
    2828using HeuristicLab.Problems.BinPacking.PackingItem;
     29using HeuristicLab.Problems.BinPacking.Shapes;
    2930
    3031namespace HeuristicLab.Problems.BinPacking2D {
    3132  [Item("PackingPlan2D", "Represents a solution for a 2D bin packing problem.")]
    3233  [StorableClass]
    33   public class PackingPlan2D : PackingPlan<TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem> {
    34     public PackingPlan2D(RectangularPackingBin binMeasures) : this(binMeasures, false, false) { }
    35     public PackingPlan2D(RectangularPackingBin binMeasures, bool useExtremePoints, bool stackingConstraints) : base(binMeasures, useExtremePoints, stackingConstraints) { }
     34  public class PackingPlan2D : PackingPlan<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem> {
     35    public PackingPlan2D(RectangularPackingShape binMeasures) : this(binMeasures, false, false) { }
     36    public PackingPlan2D(RectangularPackingShape binMeasures, bool useExtremePoints, bool stackingConstraints) : base(binMeasures, useExtremePoints, stackingConstraints) { }
    3637    [StorableConstructor]
    3738    protected PackingPlan2D(bool deserializing) : base(deserializing) { }
     
    4243      return new PackingPlan2D(this, cloner);
    4344    }
    44     public override BinPacking<TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem> NewBinPacking() {
     45    public override BinPacking<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem> NewBinPacking() {
    4546      return new Encodings.PackingEncoding.PackingPlan.BinPacking2D(BinMeasures);
    4647    }
  • branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/PackingRatioRectangularIdenticalBinEvaluator.cs

    r13606 r14045  
    2525using HeuristicLab.Common;
    2626using HeuristicLab.Problems.BinPacking.PackingItem;
    27 using HeuristicLab.Problems.BinPacking.PackingBin;
    2827using HeuristicLab.Problems.BinPacking.Dimensions;
     28using HeuristicLab.Problems.BinPacking.Shapes;
    2929
    3030namespace HeuristicLab.Problems.BinPacking.Evaluators {
    3131  [Item("Packing-Ratio Rectangular Identical-Bin Evaluator", "Represents an evaluation-algorithm for rectangular-shaped bin-packing problems with identical bins which calculates the ratio between packed and unpacked space. Found in Falkenauer:1996")]
    3232  [StorableClass]
    33   public class PackingRatioRectangularIdenticalBinEvaluator : PackingRatioRegularIdenticalBinEvaluator<TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem> {
     33  public class PackingRatioRectangularIdenticalBinEvaluator : PackingRatioRegularIdenticalBinEvaluator<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem> {
    3434
    3535    [StorableConstructor]
  • branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/RectangularIdenticalBinPackingProblem.cs

    r14040 r14045  
    2222using HeuristicLab.Problems.BinPacking.Dimensions;
    2323using HeuristicLab.Problems.BinPacking.Interfaces;
    24 using HeuristicLab.Problems.BinPacking.PackingBin;
     24
    2525using HeuristicLab.Problems.BinPacking.PackingItem;
    2626using HeuristicLab.Core;
     
    3636using HeuristicLab.Data;
    3737using System;
     38using HeuristicLab.Problems.BinPacking.Shapes;
    3839
    3940namespace HeuristicLab.Problems.BinPacking.Problem {
     
    4243  [Creatable(CreatableAttribute.Categories.CombinatorialProblems, Priority = 300)]
    4344  // TODO: only support 2d BPPData
    44   public class RectangularIdenticalBinPackingProblem : BinPackingProblem<TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem>, IProblemInstanceConsumer<BPPData>, IProblemInstanceExporter<BPPData> {
     45  public class RectangularIdenticalBinPackingProblem : BinPackingProblem<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem>, IProblemInstanceConsumer<BPPData>, IProblemInstanceExporter<BPPData> {
    4546
    4647    #region Default Instance
     
    101102    }
    102103    public RectangularIdenticalBinPackingProblem() : base(
    103       new PackingPlanEvaluationAlgorithm<Permutation, TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem>()) {
     104      new PackingPlanEvaluationAlgorithm<Permutation, TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem>()) {
    104105    }
    105106
     
    107108    public void Load(BPPData data) {
    108109      var realData = data as RealBPPData;
    109       var binData = new RectangularPackingBin(data.BinMeasures[0], data.BinMeasures[1]);
     110      var binData = new RectangularPackingShape(data.BinMeasures[0], data.BinMeasures[1]);
    110111
    111112      var itemData = new ItemList<RectangularPackingItem>(data.Items);
    112113      for (int j = 0; j < data.Items; j++) {
    113         var bin = new RectangularPackingBin(data.BinMeasures[0], data.BinMeasures[1]);
     114        var bin = new RectangularPackingShape(data.BinMeasures[0], data.BinMeasures[1]);
    114115        var item = new RectangularPackingItem(data.ItemMeasures[j][0], data.ItemMeasures[j][1], bin);
    115116        if (realData != null) {
  • branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/RectangularPackingItem.cs

    r14039 r14045  
    2828using HeuristicLab.Data;
    2929using HeuristicLab.Parameters;
    30 using HeuristicLab.Problems.BinPacking.PackingBin;
     30
    3131
    3232namespace HeuristicLab.Problems.BinPacking.PackingItem {
     
    3535  public class RectangularPackingItem : RectangularPackingShape, IPackingItem {
    3636
    37     public RectangularPackingBin TargetBin {
    38       get { return ((IValueParameter<RectangularPackingBin>)Parameters["TargetBin"]).Value; }
    39       set { ((IValueParameter<RectangularPackingBin>)Parameters["TargetBin"]).Value = value; }
     37    public RectangularPackingShape TargetBin {
     38      get { return ((IValueParameter<RectangularPackingShape>)Parameters["TargetBin"]).Value; }
     39      set { ((IValueParameter<RectangularPackingShape>)Parameters["TargetBin"]).Value = value; }
    4040    }
    4141
     
    6262    public RectangularPackingItem()
    6363      : base() {
    64       Parameters.Add(new ValueParameter<RectangularPackingBin>("TargetBin"));
     64      Parameters.Add(new ValueParameter<RectangularPackingShape>("TargetBin"));
    6565      Parameters.Add(new FixedValueParameter<DoubleValue>("Weight"));
    6666      Parameters.Add(new FixedValueParameter<IntValue>("Material"));
    6767    }
    6868
    69     public RectangularPackingItem(int width, int height, RectangularPackingBin targetBin)
     69    public RectangularPackingItem(int width, int height, RectangularPackingShape targetBin)
    7070      : this() {
    7171      this.Width = width;
    7272      this.Height = height;
    73       this.TargetBin = (RectangularPackingBin)targetBin.Clone();
     73      this.TargetBin = (RectangularPackingShape)targetBin.Clone();
    7474    }
    7575
  • branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/RectangularPackingShape.cs

    r14043 r14045  
    3333  [Item("RectangularPackingShape", "Represents the rectangular measures (width, height) of a two-dimensional bin-packing object.")]
    3434  [StorableClass]
    35   public abstract class RectangularPackingShape : PackingShape<TwoDimensionalPacking>, IComparable<RectangularPackingShape> {
     35  public class RectangularPackingShape : PackingShape<TwoDimensionalPacking>, IComparable<RectangularPackingShape> {
    3636    public int Height {
    3737      get { return ((IFixedValueParameter<IntValue>)Parameters["Height"]).Value.Value; }
     
    4949      : base(original, cloner) {
    5050    }
    51     protected RectangularPackingShape()
     51    public RectangularPackingShape()
    5252      : base() {
    5353      Parameters.Add(new FixedValueParameter<IntValue>("Width"));
    5454      Parameters.Add(new FixedValueParameter<IntValue>("Height"));
    5555    }
    56     protected RectangularPackingShape(int width, int height)
     56    public RectangularPackingShape(int width, int height)
    5757      : this() {
    5858      this.Height = height;
    5959      this.Width = width;
     60    }
     61
     62    public override IDeepCloneable Clone(Cloner cloner) {
     63      return new RectangularPackingShape(this, cloner);
    6064    }
    6165
Note: See TracChangeset for help on using the changeset viewer.