class Cursor extends AnyRef

Represents a cursor that can be used to iterate over cells within a focal neighborhood.

Linear Supertypes
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Cursor
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. 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

  1. 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.

  2. val allCells: CellSet

    A CellSet reperesenting all unmasked cells that are within the cursor bounds.

  3. val analysisOffsetCols: Int
  4. val analysisOffsetRows: Int
  5. def asciiDraw: String
  6. 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.

  7. 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.

  8. val extent: Int
  9. def focusCol: Int
  10. def focusRow: Int
  11. def isReset: Boolean

    Indicates whether or not this cursor has been moved and is tracking state between the previous position and the current position

  12. 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.

  13. var movement: Movement
  14. 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.

  15. def row: Int

    Cursor row relative to the analysis area

  16. 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.