using HeuristicLab.Common; using HeuristicLab.Core; using HeuristicLab.Encodings.PackingEncoding.PackingPlan; using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; using HeuristicLab.Problems.BinPacking.Dimensions; using HeuristicLab.Problems.BinPacking.PackingBin; using HeuristicLab.Problems.BinPacking.PackingItem; namespace HeuristicLab.Problems.BinPacking { [Item("PackingPlan3D", "Represents a solution for a 3D bin packing problem.")] [StorableClass] public class PackingPlan3D : PackingPlan { public PackingPlan3D(CuboidPackingBin binMeasures) : this(binMeasures, false, false) { } public PackingPlan3D(CuboidPackingBin binMeasures, bool useExtremePoints, bool stackingConstraints) : base(binMeasures, useExtremePoints, stackingConstraints) { } [StorableConstructor] protected PackingPlan3D(bool deserializing) : base(deserializing) { } protected PackingPlan3D(PackingPlan3D original, Cloner cloner) : base(original, cloner) { } public override IDeepCloneable Clone(Cloner cloner) { return new PackingPlan3D(this, cloner); } public override BinPacking NewBinPacking() { return new BinPacking3D(BinMeasures); } } }