class Cursor extends AnyRef
Represents a cursor that can be used to iterate over cells within a focal neighborhood.
- Alphabetic
- By Inheritance
- Cursor
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
-
new
Cursor(r: Tile, analysisArea: GridBounds[Int], extent: Int)
- r
Tile that this cursor runs over
- analysisArea
Analysis area
- extent
The distance from the focus that the bounding box of this cursor extends. e.g. if the bounding box is 3x3, then the distance from center is 1.
Value Members
-
val
addedCells: CellSet
A CellSet reperesenting unmasked cells currently within the cursor bounds, that were added by the previous cursor movement.
A CellSet reperesenting unmasked cells currently within the cursor bounds, that were added by the previous cursor movement. If the cursor has not been moved (i.e. if isReset == true) then addedCells represents the same thing as allCells.
-
val
allCells: CellSet
A CellSet reperesenting all unmasked cells that are within the cursor bounds.
- val analysisOffsetCols: Int
- val analysisOffsetRows: Int
- def asciiDraw: String
-
def
centerOn(col: Int, row: Int): Unit
Centers the cursor on a cell of the raster.
Centers the cursor on a cell of the raster. Added\Removed cells are not kept track of between centering moves, and centering the cursor resets the state.
- col
Column of raster to center on.
- row
Row of raster to center on.
-
def
col: Int
Cursor column relative to the analysis area.
Cursor column relative to the analysis area.
For example, if the analysis area starts at col 2 and the focusX is currently 3, then the col should be 1.
- val extent: Int
- def focusCol: Int
- def focusRow: Int
-
def
isReset: Boolean
Indicates whether or not this cursor has been moved and is tracking state between the previous position and the current position
-
def
move(m: Movement): Unit
Move the cursor one cell space in a horizontal of vertical direction.
Move the cursor one cell space in a horizontal of vertical direction. The cursor will keep track of what cells became added by this move (covered by the cursor or unmasked), and what cells became removed by this move (no longer covered by the cursor or masked when previously unmasked). The cursor will only keep the state of one move, so if two moves are done in a row, the state of the first move is forgotten. Only the difference between the cursor and it's most recent previous position are accounted for.
param m Movement enum that represents moving the cursor Up, Down, Left or Right.
- var movement: Movement
-
val
removedCells: CellSet
A CellSet reperesenting cells that were moved outside the cursor bounds, or unmasked cells that were masked, by the previous cursor movement.
A CellSet reperesenting cells that were moved outside the cursor bounds, or unmasked cells that were masked, by the previous cursor movement. If the cursor has not been moved this will be a no-op.
-
def
row: Int
Cursor row relative to the analysis area
-
def
setMask(f: (Int, Int) ⇒ Boolean): Unit
Sets the mask for this cursor.
Sets the mask for this cursor.
- f
Function that takes a col and row of the neighborhood coordinates and returns true if that cell should be masked. The neighborhood coordinates are the size of the cursor's bounding box, with (0, 0) being the top right corner.