/** * A fast method to retrieve one row of data from the matrix as a BitArray. * * @param $y; The row to retrieve * @param $row; An optional caller-allocated BitArray, will be allocated if null or too small * @return The resulting BitArray - this reference should always be used even when passing * your own row */ public function getRow($y, $row) { if ($row == null || $row->getSize() < $this->width) { $row = new BitArray($this->width); } else { $row->clear(); } $offset = $y * $this->rowSize; for ($x = 0; $x < $this->rowSize; $x++) { $row->setBulk($x * 32, $this->bits[$offset + $x]); } return $row; }