## org.ascape.model.space
Class Array2DEuclidian

    java.lang.Object
      org.ascape.model.space.CollectionSpace
          org.ascape.model.space.Discrete
              org.ascape.model.space.Array
                  org.ascape.model.space.Array2DBase
                      org.ascape.model.space.Array2D
                          org.ascape.model.space.Array2DEuclidian

All Implemented Interfaces:
  java.io.Serializable, java.lang.Cloneable, java.lang.Iterable, java.util.Collection, Relative, Space, RandomFunctions

    public class Array2DEuclidian

extends Array2D

A two-dimensional space providing effecient implementations for von Neumann neighbors. In a von Neumann neighborhood, cells are considered neighbors if they share an edge with the target:

     O
     OXO
     O

Since:
  1.0
Version:
  2.0
Author:
  Miles Parker
See Also:
  Serialized Form

Nested Class Summary

Nested classes/interfaces inherited from class org.ascape.model.space.CollectionSpace
`CollectionSpace.ClosestDataPoint, CollectionSpace.ConditionalIterator, CollectionSpace.CSIterator, CollectionSpace.CSMutableIterator, CollectionSpace.ListMutableRandomIterator, CollectionSpace.ListRandomIterator, CollectionSpace.MutableSubIterator, CollectionSpace.SubIterator`

Field Summary

Fields inherited from class org.ascape.model.space.Array2D
`MAX_RANK`

Fields inherited from class org.ascape.model.space.Array2DBase
`cells, currentPositionInRank, currentRank, nearnessLineOfSight, order, rankLimit, relativeCoordinates, relativeCoordinatesRankDistance, relativeCoordinatesRankLengths, relativeCoordinatesTemplate, sumOfCoordinatesWithinRank`

Fields inherited from class org.ascape.model.space.Array
`CACHE_RESULTS`

Fields inherited from class org.ascape.model.space.Discrete
`performanceWarning`

Fields inherited from class org.ascape.model.space.CollectionSpace
`collection, ESTIMATED_MAXIMUM_SIZE, extent, geometry`

Constructor Summary
`Array2DEuclidian()` Constructs a two-dimensional Euclidian array.
`Array2DEuclidian(CoordinateDiscrete extent)` Constructs a two-dimensional space array of provided geometry and extent, populated with clones of provided agent.

Method Summary
`double` `calculateDistance(Coordinate origin, Coordinate target)` Returns the shortest distance between one cell and the other, assuming a walk between the two cells.
`java.util.List` `calculateNeighbors(Node cell)` Calculate neighbors.
`java.util.List` `findWithinImpl(Coordinate origin, boolean includeSelf, double distance)` Returns cells that are near the provided coordinate.

Methods inherited from class org.ascape.model.space.Array2D
`calculateDistanceMoore, countWithin, findFirstMatchInRank, findNearest, findNearestMatchRank, findRandomMatchInRank, getNumOfCoordinatesWithinRank, getXSpan, getYSpan, hasWithin, initialize`

Methods inherited from class org.ascape.model.space.Array2DBase

`add, addAll, clear, clone, construct, contains, containsAll, findCellAway, findCells, findCells, findCellToward, findRandom, findRandom, findRandom, findRandomCoordinate, findRandomRelative, findRandomUnoccupied, findRelative, findWithinEuclidian, findWithinMoore, findWithinVonNeumann, findWithinVonNeumannLineOfSight, findWithinVonNeumannMovement, get, get, getCellsNearVonNeumannLineOfSight, getCellsNearVonNeumannMovement, getSize, getXSize, getYSize, isEmpty, isMutable, isNearnessLineOfSight, isValid, isValid, iterator, populate, randomizeCallingOrder, randomizeRank, remove, removeAll, retainAll, safeIterator, safeIterator, safeRandomIterator, set, set, setExtent, setExtent, setGeometry, setNearnessLineOfSight, size, toArray, toArray, toList`

Methods inherited from class org.ascape.model.space.Array
`findWithin, replace, swap`

Methods inherited from class org.ascape.model.space.Discrete

`bfsWithinIterator, calculateDistance, findAvailable, findAvailable, findCellAwayBFS, findCellTowardBFS, findNearestAvailable, findNearestBFS, findNeighbors, findOccupants, findOccupants, findRandomAvailable, findRandomAvailable, findRandomAvailable, findRandomAvailableNeighbor, findRandomNeighbor, findRandomNeighbor, findRandomUnoccupiedCell, findRandomUnoccupiedCell, findWithinDefault, getCells, getCellsNearDefault, getDistance, getMaximumRank`

Methods inherited from class org.ascape.model.space.CollectionSpace

`add, calculateDistance, conditionalIterator, conditionalIterator, createOrder, createSpatialConditional, deleteSweep, filter, find, findMaximum, findMaximum, findMaximumWithin, findMinimum, findMinimum, findMinimumWithin, findNearest, findRandom, findRandom, findRandom, findRandomWithin, getContext, getExtent, getGeometry, getRandom, isDeleteSweepNeeded, isPeriodic, iteratorCount, iteratorToList, moveAway, moveToward, newLocation, newLocation, randomInRange, randomInRange, randomIs, randomizeOrder, randomToLimit, safeIterators, setContext, setExtent, setPeriodic, setRandom, setSize, withinIterator`

Methods inherited from class java.lang.Object
`equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface java.util.Collection
`equals, hashCode`

Constructor Detail

### Array2DEuclidian

    public Array2DEuclidian()

  Constructs a two-dimensional Euclidian array.

### Array2DEuclidian

    public Array2DEuclidian(CoordinateDiscrete extent)

  Constructs a two-dimensional space array of provided geometry and extent, populated with clones of provided agent.

  Parameters:
    `extent` - a coordinate describing the size of this space

Method Detail

### calculateNeighbors

    public java.util.List calculateNeighbors(Node cell)

  Description copied from class: `Discrete`
  Calculate neighbors.

  Overrides:
    `calculateNeighbors` in class `Discrete`
  Parameters:
    `cell` - the cell
  Returns:
    the list

### findWithinImpl

    public java.util.List findWithinImpl(Coordinate origin,
                                         boolean includeSelf,
                                         double distance)

  Description copied from class: `Array`
  Returns cells that are near the provided coordinate.

  Specified by:
    `findWithinImpl` in class `Array`
  Parameters:
    `origin` - the agent to find cells near
    `includeSelf` - should supplied agent be included in the return set
    `distance` - the distance to form centralCells to return cells
  Returns:
    the list

### calculateDistance

    public double calculateDistance(Coordinate origin,
                                    Coordinate target)

  Returns the shortest distance between one cell and the other, assuming a walk between the two cells. In a Euclidian space, this distance is equal to the dimension root of the sum of each dimension distance squared.

  Specified by:
    `calculateDistance` in interface `Space`
  Overrides:
    `calculateDistance` in class `Discrete`
  Parameters:
    `origin` - the starting cell
    `target` - the ending cell
  Returns:
    the double