Changeset 13605 for branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/PackingItem/CuboidPackingItem.cs
- Timestamp:
- 02/08/16 20:42:24 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/PackingItem/CuboidPackingItem.cs
r13574 r13605 34 34 [StorableClass] 35 35 public class CuboidPackingItem : CuboidPackingShape, IPackingItem { 36 public IValueParameter<CuboidPackingBin> TargetBinParameter { 37 get { return (IValueParameter<CuboidPackingBin>)Parameters["TargetBin"]; } 38 } 39 public IFixedValueParameter<DoubleValue> WeightParameter { 40 get { return (IFixedValueParameter<DoubleValue>)Parameters["Weight"]; } 41 } 42 public IFixedValueParameter<IntValue> MaterialParameter { 43 get { return (IFixedValueParameter<IntValue>)Parameters["Material"]; } 44 } 45 36 46 public CuboidPackingBin TargetBin { 37 get { return ((IValueParameter<CuboidPackingBin>)Parameters["TargetBin"]).Value; }38 set { ((IValueParameter<CuboidPackingBin>)Parameters["TargetBin"]).Value = value; }47 get { return TargetBinParameter.Value; } 48 set { TargetBinParameter.Value = value; } 39 49 } 40 50 41 51 public double Weight { 42 get { return ((IFixedValueParameter<DoubleValue>)Parameters["Weight"]).Value.Value; }43 set { ((IFixedValueParameter<DoubleValue>)Parameters["Weight"]).Value.Value = value; }52 get { return WeightParameter.Value.Value; } 53 set { WeightParameter.Value.Value = value; } 44 54 } 45 55 46 56 public int Material { 47 get { return ((IFixedValueParameter<IntValue>)Parameters["Material"]).Value.Value; }48 set { ((IFixedValueParameter<IntValue>)Parameters["Material"]).Value.Value = value; }57 get { return MaterialParameter.Value.Value; } 58 set { MaterialParameter.Value.Value = value; } 49 59 } 50 60 … … 57 67 protected CuboidPackingItem(CuboidPackingItem original, Cloner cloner) 58 68 : base(original, cloner) { 69 RegisterEvents(); 59 70 } 60 71 public CuboidPackingItem() … … 63 74 Parameters.Add(new FixedValueParameter<DoubleValue>("Weight")); 64 75 Parameters.Add(new FixedValueParameter<IntValue>("Material")); 76 77 RegisterEvents(); 65 78 } 66 79 … … 83 96 } 84 97 98 [StorableHook(HookType.AfterDeserialization)] 99 private void AfterDeserialization() { 100 RegisterEvents(); 101 } 102 85 103 public override IDeepCloneable Clone(Cloner cloner) { 86 104 return new CuboidPackingItem(this, cloner); 87 105 } 88 106 89 public void AddTargetBinMeasures(int[] targetBinMeasures) { 90 TargetBin = new CuboidPackingBin(targetBinMeasures[0], targetBinMeasures[1], targetBinMeasures[2]); 107 private void RegisterEvents() { 108 // only because of ToString override 109 WeightParameter.Value.ValueChanged += (sender, args) => OnToStringChanged(); 110 MaterialParameter.Value.ValueChanged += (sender, args) => OnToStringChanged(); 111 112 // target bin does not occur in ToString() 91 113 } 92 114 115 93 116 public override string ToString() { 94 return String.Format("CuboidPackingItem ({0}, {1}, {2}; w={3}, m={4})", this.Width, this.Height, this.Depth, this.Weight, this.Material);117 return string.Format("CuboidPackingItem ({0}, {1}, {2}; weight={3}, mat={4})", this.Width, this.Height, this.Depth, this.Weight, this.Material); 95 118 } 96 119 }
Note: See TracChangeset
for help on using the changeset viewer.