public function pack(): PackedBox
    {
        $this->logger->debug("[EVALUATING BOX] {$this->box->getReference()}", ['box' => $this->box]);

        while (count($this->items) > 0) {
            $layerStartDepth = $this->getCurrentPackedDepth();
            $this->packLayer($layerStartDepth, $this->boxWidth, $this->boxLength, $this->box->getInnerDepth() - $layerStartDepth);
        }

        if ($this->boxRotated) {
            $this->rotateLayersNinetyDegrees();
        }

        $this->stabiliseLayers();

        $this->logger->debug('done with this box');

        return new PackedBox($this->box, $this->getPackedItemList());
    }
public function pack(): PackedBox
    {
        $this->logger->debug("[EVALUATING BOX] {$this->box->getReference()}", ['box' => $this->box]);

        while (count($this->items) > 0) {
            $layerStartDepth = $this->getCurrentPackedDepth();
            $this->packLayer($layerStartDepth, $this->boxWidth, $this->boxLength, $this->box->getInnerDepth() - $layerStartDepth);
        }

        if ($this->boxRotated) {
            $this->rotateLayersNinetyDegrees();
        }

        $this->stabiliseLayers();

        $this->logger->debug('done with this box');

        return new PackedBox($this->box, $this->getPackedItemList());
    }
public function pack ( ) : PackedBox { $ this -> logger -> debug ( "[EVALUATING BOX] {$this->box->getReference()}" , [ 'box' => $ this -> box ] ) ; while ( count ( $ this -> items ) > 0 ) { $ layerStartDepth = $ this -> getCurrentPackedDepth ( ) ; $ this -> packLayer ( $ layerStartDepth , $ this -> boxWidth , $ this -> boxLength , $ this -> box -> getInnerDepth ( ) - $ layerStartDepth ) ; } if ( $ this -> boxRotated ) { $ this -> rotateLayersNinetyDegrees ( ) ; } $ this -> stabiliseLayers ( ) ; $ this -> logger -> debug ( 'done with this box' ) ; return new PackedBox ( $ this -> box , $ this -> getPackedItemList ( ) ) ; }
Pack as many items as possible into specific given box.

@return PackedBox packed box
Pack as many items as possible into specific given box .