Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
06/09/13 12:58:39 (11 years ago)
Author:
jhelm
Message:

#1966: Bugfixing; Refactoring; Performancetuning;

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Shapes/CuboidPackingShape.cs

    r9596 r9599  
    5757
    5858    public override bool EnclosesPoint(ThreeDimensionalPacking myPosition, ThreeDimensionalPacking checkedPoint) {
    59       var c = new CuboidDiagonal(myPosition, this);
    60       return (c.x1 <= checkedPoint.X &&
    61                 c.x2 >= checkedPoint.X &&
    62                 c.y1 <= checkedPoint.Y &&
    63                 c.y2 >= checkedPoint.Y &&
    64                 c.z1 <= checkedPoint.Z &&
    65                 c.z2 >= checkedPoint.Z);
     59      return (myPosition.X <= checkedPoint.X &&
     60                (myPosition.X + (myPosition.Rotated ? Depth : Width) - 1) >= checkedPoint.X &&
     61                myPosition.Y <= checkedPoint.Y &&
     62                (myPosition.Y + Height - 1) >= checkedPoint.Y &&
     63                myPosition.Z <= checkedPoint.Z &&
     64                (myPosition.Z + (myPosition.Rotated ? Width : Depth) - 1) >= checkedPoint.Z);
    6665    }
    6766    public override bool Encloses(ThreeDimensionalPacking checkedPosition, PackingShape<ThreeDimensionalPacking> checkedShape) {
     
    8786    }
    8887    private bool Overlaps(CuboidDiagonal c1, CuboidDiagonal c2) {
    89       return !(c1.x1 >= c2.x2 ||
    90                c1.y1 >= c2.y2 || 
    91                c1.z1 >= c2.z2 ||
    92                c1.x2 <= c2.x1 ||
    93                c1.y2 <= c2.y1 ||
    94                c1.z2 <= c2.z1);
     88      return !(c1.x1 > c2.x2 ||
     89               c1.y1 > c2.y2 || 
     90               c1.z1 > c2.z2 ||
     91               c1.x2 < c2.x1 ||
     92               c1.y2 < c2.y1 ||
     93               c1.z2 < c2.z1);
    9594    }
    9695
     
    175174        y1 = myPosition.Y;
    176175        z1 = myPosition.Z;
    177         x2 = myPosition.X + (myPosition.Rotated ? myShape.Depth : myShape.Width);
    178         y2 = myPosition.Y + myShape.Height;
    179         z2 = myPosition.Z + (myPosition.Rotated ? myShape.Width : myShape.Depth);
     176        x2 = myPosition.X + (myPosition.Rotated ? myShape.Depth : myShape.Width) - 1;
     177        y2 = myPosition.Y + myShape.Height - 1;
     178        z2 = myPosition.Z + (myPosition.Rotated ? myShape.Width : myShape.Depth) - 1;
    180179      }
    181180    }
Note: See TracChangeset for help on using the changeset viewer.