Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
02/01/18 12:21:34 (6 years ago)
Author:
rhanghof
Message:

#2817

  • Former material is now the layer.
  • Added material enumeration
  • Modification at the minimum residual space left bin packer
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2817-BinPackingSpeedup/HeuristicLab.Problems.BinPacking/3.3/3D/PackingItem.cs

    r15646 r15705  
    2626using HeuristicLab.Parameters;
    2727using HeuristicLab.Problems.BinPacking;
     28using HeuristicLab.Problems.BinPacking3D.Material;
    2829
    2930namespace HeuristicLab.Problems.BinPacking3D {
     
    4041      get { return (IFixedValueParameter<DoubleValue>)Parameters["Weight"]; }
    4142    }
    42     public IFixedValueParameter<IntValue> MaterialParameter {
    43       get { return (IFixedValueParameter<IntValue>)Parameters["Material"]; }
     43    public IFixedValueParameter<IntValue> LayerParameter {
     44      get { return (IFixedValueParameter<IntValue>)Parameters["Layer"]; }
    4445    }
    4546
     
    5455    }
    5556
    56     public int Material {
    57       get { return MaterialParameter.Value.Value; }
    58       set { MaterialParameter.Value.Value = value; }
    59     }
    60 
     57    public int Layer {
     58      get { return LayerParameter.Value.Value; }
     59      set { LayerParameter.Value.Value = value; }
     60    }
     61
     62    #region Material
     63    public IFixedValueParameter<EnumValue<MaterialType>> MaterialBottomParameter {
     64      get { return (IFixedValueParameter<EnumValue<MaterialType>>)Parameters["MaterialBottom"]; }
     65    }
     66    public MaterialType MaterialBottom {
     67      get { return MaterialBottomParameter.Value.Value; }
     68      set { MaterialBottomParameter.Value.Value = value; }
     69    }
     70
     71    public IFixedValueParameter<EnumValue<MaterialType>> MaterialTopParameter {
     72      get { return (IFixedValueParameter<EnumValue<MaterialType>>)Parameters["MaterialTop"]; }
     73    }
     74    public MaterialType MaterialTop {
     75      get { return MaterialTopParameter.Value.Value; }
     76      set { MaterialTopParameter.Value.Value = value; }
     77    }
     78    #endregion
    6179
    6280    public IFixedValueParameter<DoubleValue> SupportedWeightParameter {
     
    277295
    278296    public bool SupportsStacking(IPackingItem other) {
    279       return ((other.Material < this.Material) || (other.Material.Equals(this.Material) && other.Weight <= this.Weight));
     297      return ((other.Layer < this.Layer) || (other.Layer.Equals(this.Layer) && other.Weight <= this.Weight));
    280298    }
    281299    #endregion
     
    292310      Parameters.Add(new ValueParameter<PackingShape>("TargetBin"));
    293311      Parameters.Add(new FixedValueParameter<DoubleValue>("Weight"));
    294       Parameters.Add(new FixedValueParameter<IntValue>("Material"));
    295 
    296       Parameters.Add(new FixedValueParameter<DoubleValue>("SupportedWeight"));     
     312      Parameters.Add(new FixedValueParameter<IntValue>("Layer"));
     313
     314
     315      Parameters.Add(new FixedValueParameter<EnumValue<MaterialType>>("MaterialTop"));
     316      Parameters.Add(new FixedValueParameter<EnumValue<MaterialType>>("MaterialBottom"));
     317
     318      Parameters.Add(new FixedValueParameter<DoubleValue>("SupportedWeight"));
    297319
    298320      Parameters.Add(new FixedValueParameter<BoolValue>("RotateEnabled"));
     
    319341    }
    320342
    321     public PackingItem(int width, int height, int depth, PackingShape targetBin, double weight, int material)
     343    public PackingItem(int width, int height, int depth, PackingShape targetBin, double weight, int layer)
    322344      : this(width, height, depth, targetBin) {
    323345      this.Weight = weight;
    324       this.Material = material;
     346      this.Layer = layer;
    325347    }
    326348
     
    333355      TargetBin = (PackingShape)packingItem.TargetBin.Clone();
    334356      Weight = packingItem.Weight;
    335       Material = packingItem.Material;
     357      Layer = packingItem.Layer;
    336358      Rotated = packingItem.Rotated;
    337359      Tilted = packingItem.Tilted;
    338360      IsStackabel = packingItem.IsStackabel;
     361      MaterialTop = packingItem.MaterialTop;
     362      MaterialBottom = packingItem.MaterialBottom;
    339363
    340364      LoadSecuringDepth = packingItem.LoadSecuringDepth;
     
    355379      // NOTE: only because of ToString override
    356380      WeightParameter.Value.ValueChanged += (sender, args) => OnToStringChanged();
    357       MaterialParameter.Value.ValueChanged += (sender, args) => OnToStringChanged();
     381      LayerParameter.Value.ValueChanged += (sender, args) => OnToStringChanged();
    358382
    359383      // target bin does not occur in ToString()
     
    361385
    362386    public override string ToString() {
    363       return string.Format("CuboidPackingItem ({0}, {1}, {2}; weight={3}, mat={4})", this.Width, this.Height, this.Depth, this.Weight, this.Material);
     387      return string.Format("CuboidPackingItem ({0}, {1}, {2}; weight={3}, layer={4})", this.Width, this.Height, this.Depth, this.Weight, this.Layer);
    364388    }
    365389
Note: See TracChangeset for help on using the changeset viewer.