Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
01/28/16 18:32:54 (8 years ago)
Author:
gkronber
Message:

#1966: changed PackingShapes to ParameterizedItems

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/PackingItem/RectangularPackingItem.cs

    r13497 r13574  
    2626using HeuristicLab.Common;
    2727using HeuristicLab.Core;
     28using HeuristicLab.Data;
     29using HeuristicLab.Parameters;
    2830using HeuristicLab.Problems.BinPacking.PackingBin;
    2931
     
    3335  public class RectangularPackingItem : RectangularPackingShape, IPackingItem {
    3436
    35     [Storable]
    36     public RectangularPackingBin TargetBin { get; set; }
     37    public RectangularPackingBin TargetBin {
     38      get { return ((IValueParameter<RectangularPackingBin>)Parameters["TargetBin"]).Value; }
     39      set { ((IValueParameter<RectangularPackingBin>)Parameters["TargetBin"]).Value = value; }
     40    }
    3741
    38     [Storable]
    39     public double Weight { get; set; }
     42    public double Weight {
     43      get { return ((IFixedValueParameter<DoubleValue>)Parameters["Weight"]).Value.Value; }
     44      set { ((IFixedValueParameter<DoubleValue>)Parameters["Weight"]).Value.Value = value; }
     45    }
    4046
    41     [Storable]
    42     public int Material { get; set; }
    43 
    44     public bool SupportsStacking(IPackingItem other) {
    45       return ((other.Material < this.Material) || (other.Material.Equals(this.Material) && other.Weight <= this.Weight));
     47    public int Material {
     48      get { return ((IFixedValueParameter<IntValue>)Parameters["Material"]).Value.Value; }
     49      set { ((IFixedValueParameter<IntValue>)Parameters["Material"]).Value.Value = value; }
    4650    }
    4751
     
    5054    protected RectangularPackingItem(RectangularPackingItem original, Cloner cloner)
    5155      : base(original, cloner) {
    52       this.Weight = original.Weight;
    53       this.Material = original.Material;
    54       this.TargetBin = cloner.Clone(TargetBin);
    5556    }
     57
    5658    public override IDeepCloneable Clone(Cloner cloner) {
    5759      return new RectangularPackingItem(this, cloner);
    5860    }
     61
    5962    public RectangularPackingItem()
    6063      : base() {
     64      Parameters.Add(new ValueParameter<RectangularPackingBin>("TargetBin"));
     65      Parameters.Add(new FixedValueParameter<DoubleValue>("Weight"));
     66      Parameters.Add(new FixedValueParameter<IntValue>("Material"));
    6167    }
    6268
    6369    public RectangularPackingItem(int width, int height, RectangularPackingBin targetBin)
    64       : base(width, height) {
     70      : this() {
     71      this.Weight = width;
     72      this.Height = height;
    6573      this.TargetBin = (RectangularPackingBin)targetBin.Clone();
     74    }
     75
     76    public bool SupportsStacking(IPackingItem other) {
     77      return ((other.Material < this.Material) || (other.Material.Equals(this.Material) && other.Weight <= this.Weight));
    6678    }
    6779
Note: See TracChangeset for help on using the changeset viewer.