org.ascape.model.space
Class Array2D

java.lang.Object
  extended by org.ascape.model.space.CollectionSpace
      extended by org.ascape.model.space.Discrete
          extended by org.ascape.model.space.Array
              extended by org.ascape.model.space.Array2DBase
                  extended by org.ascape.model.space.Array2D
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, java.lang.Iterable, java.util.Collection, Relative, Space, RandomFunctions
Direct Known Subclasses:
Array2DEuclidian, Array2DMoore, Array2DSmallWorld, Array2DVonNeumann

public abstract class Array2D
extends Array2DBase

A two-dimensional, fixed-size collection of agents providing services described for space. Important: at moment, does not support von Neumann or Moore space for find near, uses Euclidian distances only.

Since:
1.0
Version:
3.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
static int MAX_RANK
          The MA x_ 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
Array2D()
          Constructs a 2-dimensional array space of provided extent.
Array2D(Geometry geometry, CoordinateDiscrete extent)
          Constructs a 2-dimensional array space of provided extent.
 
Method Summary
 double calculateDistanceMoore(Coordinate origin, Coordinate target)
          Calculate distance moore.
 int countWithin(Coordinate origin, Conditional condition, boolean includeOrigin, double maximumDistance)
          Returns the number of cells within the supplied distance that meet the supplied condition.
 Location findFirstMatchInRank(Coordinate origin, Conditional condition, int rank)
          Returns the first element in the supplied rank that matches the supplied condition, null if no matches.
 Location findNearest(Coordinate origin, Conditional condition, boolean includeOrigin, double distance)
          Finds the nearest cell that meets some condition.
 int findNearestMatchRank(Coordinate origin, Conditional condition, boolean includeOrigin, double maximumDistance)
          Returns the nearest rank that includes a cell which matches the supplied condition, -1 if no matches.
 Location findRandomMatchInRank(Coordinate origin, Conditional condition, int rank)
          Returns a random element in the supplied rank that matches the supplied condition, null if no matches.
protected static int getNumOfCoordinatesWithinRank(int rank)
          Returns the number of relative coordiantes that exist in the given distance rank.
protected  int getXSpan(Coordinate origin, Coordinate target)
          Gets the x span.
protected  int getYSpan(Coordinate origin, Coordinate target)
          Gets the y span.
 boolean hasWithin(Coordinate origin, Conditional condition, boolean includeOrigin, double maximumDistance)
          Returns true if there is a cell within the supplied distance that meets the supplied condition.
 void initialize()
          Initializes the space, copying a set of relative coordinates for use, and ensuring that the ordering used for random draws starts consistently.
 
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, findWithinImpl, replace, swap
 
Methods inherited from class org.ascape.model.space.Discrete
bfsWithinIterator, calculateDistance, calculateDistance, calculateNeighbors, 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
 

Field Detail

MAX_RANK

public static int MAX_RANK
The MA x_ RANK.

Constructor Detail

Array2D

public Array2D()
Constructs a 2-dimensional array space of provided extent.


Array2D

public Array2D(Geometry geometry,
               CoordinateDiscrete extent)
Constructs a 2-dimensional array space of provided extent.

Parameters:
geometry - geometry describing this space
extent - a coordinate describing the size of this space
Method Detail

initialize

public void initialize()
Initializes the space, copying a set of relative coordinates for use, and ensuring that the ordering used for random draws starts consistently.

Specified by:
initialize in interface Space
Overrides:
initialize in class Array2DBase

getNumOfCoordinatesWithinRank

protected static int getNumOfCoordinatesWithinRank(int rank)
Returns the number of relative coordiantes that exist in the given distance rank.

Parameters:
rank - the rank to return coordinate count for
Returns:
the num of coordinates within rank

calculateDistanceMoore

public final double calculateDistanceMoore(Coordinate origin,
                                           Coordinate target)
Calculate distance moore.

Parameters:
origin - the origin
target - the target
Returns:
the double

getXSpan

protected final int getXSpan(Coordinate origin,
                             Coordinate target)
Gets the x span.

Parameters:
origin - the origin
target - the target
Returns:
the x span

getYSpan

protected final int getYSpan(Coordinate origin,
                             Coordinate target)
Gets the y span.

Parameters:
origin - the origin
target - the target
Returns:
the y span

findFirstMatchInRank

public Location findFirstMatchInRank(Coordinate origin,
                                     Conditional condition,
                                     int rank)
Returns the first element in the supplied rank that matches the supplied condition, null if no matches.

Parameters:
origin - the agent to find cells near
condition - the condition that found cell must meet
rank - the rank to return match in
Returns:
the location

findNearest

public Location findNearest(Coordinate origin,
                            Conditional condition,
                            boolean includeOrigin,
                            double distance)
Finds the nearest cell that meets some condition.

Specified by:
findNearest in interface Space
Overrides:
findNearest in class Array
Parameters:
origin - the agent to find cells near
condition - the condition that found cell must meet
includeOrigin - should supplied agent be included in the search
distance - the maximum distance to search within
Returns:
the location

findNearestMatchRank

public int findNearestMatchRank(Coordinate origin,
                                Conditional condition,
                                boolean includeOrigin,
                                double maximumDistance)
Returns the nearest rank that includes a cell which matches the supplied condition, -1 if no matches.

Specified by:
findNearestMatchRank in class Array
Parameters:
origin - the agent to find cells near
condition - the condition that found cell must meet
includeOrigin - should supplied agent (rank 0) be included in the search
maximumDistance - the maximum distance to search within
Returns:
the int

findRandomMatchInRank

public Location findRandomMatchInRank(Coordinate origin,
                                      Conditional condition,
                                      int rank)
Returns a random element in the supplied rank that matches the supplied condition, null if no matches.

Specified by:
findRandomMatchInRank in class Array
Parameters:
origin - the agent to find cells near
condition - the condition that found cell must meet
rank - the rank to return match in
Returns:
the location

hasWithin

public boolean hasWithin(Coordinate origin,
                         Conditional condition,
                         boolean includeOrigin,
                         double maximumDistance)
Returns true if there is a cell within the supplied distance that meets the supplied condition.

Specified by:
hasWithin in interface Space
Overrides:
hasWithin in class CollectionSpace
Parameters:
origin - the agent to find cells near
condition - the condition that found cell must meet
includeOrigin - should supplied agent be included in the search
maximumDistance - the distance to search within
Returns:
true, if has within

countWithin

public int countWithin(Coordinate origin,
                       Conditional condition,
                       boolean includeOrigin,
                       double maximumDistance)
Returns the number of cells within the supplied distance that meet the supplied condition.

Specified by:
countWithin in interface Space
Overrides:
countWithin in class CollectionSpace
Parameters:
origin - the agent to find cells near
condition - the condition that found cell must meet
includeOrigin - should supplied agent be included in the search
maximumDistance - the distance to search within
Returns:
the int


Copyright © 1998-2008 The Brookings Institution, NuTech Solutions, Metascape, LLC All Rights Reserved.