BitMatrix class
Represents a 2D matrix of bits.
In function arguments below, and throughout the common module, x is the column position, and y is the row position. The ordering is always x, y. The origin is at the top-left.
Internally the bits are represented in a 1-D array of 32-bit ints. However, each row begins with a new int. This is done intentionally so that we can copy out a row into a BitArray very efficiently.
The ordering of bits is row-major. Within each int, the least significant bits are used first, meaning they represent lower x values. This is compatible with BitArray's implementation.
@author Sean Owen @author dswitkin@google.com (Daniel Switkin)
Properties
- data → Uint32List
-
no setter
- hashCode → int
-
The hash code for this object.
no setteroverride
- height → int
-
The height of the matrix
no setter
- rowSize → int
-
The row size of the matrix
no setter
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- width → int
-
The width of the matrix
no setter
Methods
-
clear(
) → void - Clears all bits (sets to false).
-
clone(
) → BitMatrix -
flip(
[int? x, int? y]) → void - Flips every bit in the matrix.
-
get(
int x, int y) → bool - Gets the requested bit, where true means black.
-
getBottomRightOnBit(
) → List< int> ? -
getEnclosingRectangle(
) → List< int> ? - This is useful in detecting the enclosing rectangle of a 'pure' barcode.
-
getRow(
int y, BitArray? row) → BitArray - A fast method to retrieve one row of data from the matrix as a BitArray.
-
getTopLeftOnBit(
) → List< int> ? - This is useful in detecting a corner of a 'pure' barcode.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
rotate(
int degrees) → void -
Modifies this
BitMatrix
to represent the same but rotated the given degrees (0, 90, 180, 270) -
rotate180(
) → void -
Modifies this
BitMatrix
to represent the same but rotated 180 degrees -
rotate90(
) → void -
Modifies this
BitMatrix
to represent the same but rotated 90 degrees counterclockwise -
set(
int x, int y) → void - Sets the given bit to true.
-
setRegion(
int left, int top, int width, int height) → void - Sets a square region of the bit matrix to true.
-
setRow(
int y, BitArray row) → void - @param y row to set @param row BitArray to copy from
-
toString(
[String setString = 'X ', String unsetString = ' ', String lineSeparator = '\n']) → String -
@param setString representation of a set bit
@param unsetString representation of an unset bit
@param lineSeparator newline character in string representation
@return string representation of entire matrix utilizing given strings and line separator
override
-
unset(
int x, int y) → void -
xor(
BitMatrix mask) → void -
Exclusive-or (XOR): Flip the bit in this
BitMatrix
if the corresponding mask bit is set.
Operators
-
operator ==(
Object other) → bool -
The equality operator.
override