public final class BitMatrix extends Object implements Cloneable
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.
Constructor and Description |
---|
BitMatrix(int dimension)
Creates an empty square
BitMatrix . |
BitMatrix(int width,
int height)
Creates an empty
BitMatrix . |
Modifier and Type | Method and Description |
---|---|
void |
clear()
Clears all bits (sets to false).
|
BitMatrix |
clone() |
boolean |
equals(Object o) |
void |
flip()
Flips every bit in the matrix.
|
void |
flip(int x,
int y)
Flips the given bit.
|
boolean |
get(int x,
int y)
Gets the requested bit, where true means black.
|
int |
getHeight() |
int |
getRowSize() |
int |
getWidth() |
int |
hashCode() |
void |
set(int x,
int y)
Sets the given bit to true.
|
void |
setRegion(int left,
int top,
int width,
int height)
Sets a square region of the bit matrix to true.
|
String |
toString() |
String |
toString(String setString,
String unsetString) |
String |
toString(String setString,
String unsetString,
String lineSeparator)
Deprecated.
call
toString(String,String) only, which uses \n line separator always |
void |
unset(int x,
int y) |
public BitMatrix(int dimension)
BitMatrix
.dimension
- height and widthpublic BitMatrix(int width, int height)
BitMatrix
.width
- bit matrix widthheight
- bit matrix heightpublic boolean get(int x, int y)
Gets the requested bit, where true means black.
x
- The horizontal component (i.e. which column)y
- The vertical component (i.e. which row)public void set(int x, int y)
Sets the given bit to true.
x
- The horizontal component (i.e. which column)y
- The vertical component (i.e. which row)public void unset(int x, int y)
public void flip(int x, int y)
Flips the given bit.
x
- The horizontal component (i.e. which column)y
- The vertical component (i.e. which row)public void flip()
Flips every bit in the matrix.
public void clear()
public void setRegion(int left, int top, int width, int height)
Sets a square region of the bit matrix to true.
left
- The horizontal position to begin at (inclusive)top
- The vertical position to begin at (inclusive)width
- The width of the regionheight
- The height of the regionpublic int getWidth()
public int getHeight()
public int getRowSize()
public String toString()
public String toString(String setString, String unsetString)
setString
- representation of a set bitunsetString
- representation of an unset bit@Deprecated public String toString(String setString, String unsetString, String lineSeparator)
toString(String,String)
only, which uses \n line separator alwayssetString
- representation of a set bitunsetString
- representation of an unset bitlineSeparator
- newline character in string representationCopyright © 2023. All rights reserved.