edu.brook.ascape.model
Class ScapeArray1D

java.lang.Object
  |
  +--edu.brook.ascape.model.AscapeObject
        |
        +--edu.brook.ascape.model.Agent
              |
              +--edu.brook.ascape.model.Cell
                    |
                    +--edu.brook.ascape.model.CellOccupant
                          |
                          +--edu.brook.ascape.model.Scape
                                |
                                +--edu.brook.ascape.model.ScapeGraph
                                      |
                                      +--edu.brook.ascape.model.ScapeArray1D

public class ScapeArray1D
extends ScapeGraph

A one-dimensional, fixed-size, collection of agents providing services described for scape.

Since:
1.0
Version:
1.5
See Also:
Serialized Form

Inner Class Summary
 class ScapeArray1D.ScapeArray1DIterator
           
 class ScapeArray1D.ScapeArray1DRandomIterator
           
 
Fields inherited from class edu.brook.ascape.model.ScapeGraph
extent
 
Fields inherited from class edu.brook.ascape.model.Scape
AGENT_ORDER, agentsPerIteration, ALL_AGENTS, autoCreate, cellsRequestUpdates, COLLECT_STATS_RULE, collectStats, COMPLETE_TOUR, copyrightAndCredits, CREATE_RULE, CREATE_SCAPE_RULE, dataGroup, demoModelClasses, demoModelNames, description, drawFeatureObservable, drawFeatures, earliestPeriod, executionOrder, executionStyle, geometry, home, INITIAL_RULES_RULE, initialRules, INTERNAL_START_RULE, ITERATE_SCAPE_RULE, iteration, latestPeriod, membersActive, PAUSE_RULE, paused, period, periodName, prototypeAgent, REPEATED_DRAW, restartAfterAutoStop, RESUME_RULE, RULE_ORDER, rules, running, scapeListeners, selfView, standardOutView, START_RULE, startOnOpen, startPeriod, step, STOP_RULE, stopPeriod, updatedListeners, updatedMembers, version
 
Fields inherited from class edu.brook.ascape.model.CellOccupant
MOVE_RANDOM_LOCATION_RULE, PLAY_HOST_RULE, PLAY_NEIGHBORS_RULE, PLAY_OTHER, RANDOM_WALK_AVAILABLE_RULE, RANDOM_WALK_RULE
 
Fields inherited from class edu.brook.ascape.model.Cell
cellsNear, coordinate, neighbors, thisUpdate
 
Fields inherited from class edu.brook.ascape.model.Agent
DEATH_RULE, deleteMarker, FISSIONING_RULE, FORCE_DIE_RULE, FORCE_FISSION_RULE, FORCE_MOVE_RULE, INITIALIZE_RULE, initialized, ITERATE_AND_UPDATE_RULE, ITERATE_RULE, METABOLISM_RULE, MOVEMENT_RULE, UPDATE_RULE
 
Fields inherited from class edu.brook.ascape.model.AscapeObject
ARBITRARY_SEED, count, name, scape
 
Constructor Summary
ScapeArray1D()
          Constructs a scape array.
ScapeArray1D(java.lang.String name, Cell prototypeAgent, CoordinateDiscrete extent)
          Constructs a scape array of provided extent, populated with clones of provided agent.
 
Method Summary
 int countWithin(Cell origin, Conditional condition, boolean includeOrigin, double maximumDistance)
           
 void createScape()
          Populate the scape with instances of its protoype agent.
 Cell findNearestCell(Cell origin, Conditional condition)
           
 Cell findNearestCell(Cell origin, Conditional condition, boolean includeOrigin)
           
 Cell findNearestCell(Cell origin, Conditional condition, boolean includeOrigin, double maximumDistance)
           
 Cell findRandomCell()
          Returns a cell randomly selected from the lattice.
 CoordinateDiscrete findRandomCoordinate()
          Returns a coordinate randomly selected from the lattice's space.
 Agent[] getAgents()
          Returns all agents in the scape as an array.
 Cell getCell(CoordinateDiscrete coordinate)
          Returns the cell existing at the specified coordinate.
 Cell getCell(int xPosition)
          Returns the cell existing at the specified coordinate.
 Cell[] getCells()
          Returns all agents in the scape as an array of cells (use this method to avoid coercion of memebers to Cell.)
 Cell[] getCellsNear(Cell centralAgent, int distance, boolean includeSelf)
          Returns cells that are near the provided cell.
 int getDistance(Cell origin, Cell target)
           
 int getSize()
          Returns the size, or number of cells, (the product of all extents) of this FixedList.
 boolean hasWithin(Cell origin, Conditional condition, boolean includeOrigin, double maximumDistance)
           
 ScapeIterator iterator()
           
 ScapeIterator randomIterator()
           
 void randomizeCallingOrder()
          Randomizes the lookup used to determine calling order for random order execution of rules.
 void setCell(CoordinateDiscrete coordinate, Cell cell)
          Sets the cell at the specified coordinate to the supplied cell.
 void setCell(int position, Cell cell)
          Sets the cell at the specified position to the supplied cell.
 void setGeometry(Geometry geometry)
          Sets the geometry of this scape.
 
Methods inherited from class edu.brook.ascape.model.ScapeGraph
executeOnMembers, findAvailable, findAvailable, findCells, findCells, findMaximumCell, findMaximumWithin, findOccupants, findOccupants, findRandomCell, findRandomCells, findRandomCells, findRandomUnoccupiedCell, findRandomUnoccupiedCell, getExtent, setExtent
 
Methods inherited from class edu.brook.ascape.model.Scape
addDrawFeature, addInitialRule, addInitialRule, addRule, addRule, addScapeListener, addStatCollector, addStatCollectors, addView, addView, addView, addViews, addViews, addViews, clone, close, closeAndOpenNew, closeAndOpenNewFinally, closeFinally, contentsToString, createOrder, createSelfView, createViews, execute, execute, executeOnMembers, executeOnMembers, executeOnMembers, executeOnRoot, executeOnRoot, exit, getAgentsNear, getAgentsPerIteration, getAllScapes, getCollectStats, getCustomizer, getData, getDescription, getDrawFeatures, getDrawFeaturesObservable, getExecutionOrder, getExecutionStyle, getGeometry, getHome, getInitialRules, getIteration, getName, getPeriod, getPeriodDescription, getPeriodName, getPrototypeAgent, getRoot, getRules, getStandardOutView, getStartPeriod, getStatCollectors, getStopPeriod, initialize, isAllViewsUpdated, isAutoCreate, isCellsRequestUpdates, isMembersActive, isMutable, isPaused, isRoot, isRunning, isStartOnOpen, isValidPeriod, isViewSelf, iterateScape, listenerOrMemberUpdated, listenerUpdated, main, memberUpdated, notifyViews, onSetup, onStart, onStop, onUpdate, open, open, open, open, open, parseSettingArgs, pause, quit, quitFinally, randomizeOrder, removeScapeListener, requestRestart, respondControl, restart, resume, retrieveAllAccessors, retrieveAllAccessorsOrdered, run, save, save, save, setAgentsPerIteration, setAutoCreate, setAutoRestart, setCellsRequestUpdates, setCollectStats, setCollectStats, setCustomizer, setDescription, setEarliestPeriod, setExecutionOrder, setExecutionStyle, setHome, setInternalPaused, setInternalRunning, setLatestPeriod, setMembersActive, setPaused, setPeriodName, setPrototypeAgent, setRunning, setStartOnOpen, setStartPeriod, setStopPeriod, setViewSelf, start, stop, toString, waitForViewsUpdate
 
Methods inherited from class edu.brook.ascape.model.CellOccupant
die, getAvailableNeighboringCells, getCellsNearOnHost, getHostCell, getHostScape, getNeighborsOnHost, leave, moveAway, moveTo, moveToRandomLocation, moveToward, randomWalk, randomWalkAvailable, setHostScape
 
Methods inherited from class edu.brook.ascape.model.Cell
countNeighbors, countWithin, findMaximumWithin, findNearestCell, findNearestCell, findNearestCell, findRandomNeighbor, getCellsNear, getCoordinate, getDistance, getNeighbors, getNeighbors, getNetwork, getOccupant, hasWithin, isAvailable, isUpdateNeeded, removeOccupant, requestUpdate, requestUpdateNext, setCoordinate, setNeighbors, setNetwork, setOccupant
 
Methods inherited from class edu.brook.ascape.model.Agent
death, deathCondition, execute, execute, fission, fissionCondition, fissioning, getColor, getColor, getImage, getImage, getModel, isDelete, isInitialized, iterate, markForDeletion, metabolism, move, movement, movementCondition, play, scapeCreated, update
 
Methods inherited from class edu.brook.ascape.model.AscapeObject
getRandom, getRandomSeed, getScape, randomInRange, randomInRange, randomIs, randomToLimit, reseed, setName, setRandom, setRandomSeed, setScape
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ScapeArray1D

public ScapeArray1D()
Constructs a scape array.

ScapeArray1D

public ScapeArray1D(java.lang.String name,
                    Cell prototypeAgent,
                    CoordinateDiscrete extent)
Constructs a scape array of provided extent, populated with clones of provided agent.
Parameters:
name - a descriptive name for the scape
prototypeAgent - the agent whose clones will be used to populate this scape
extent - a coordinate describing the size of this scape
Method Detail

setGeometry

public void setGeometry(Geometry geometry)
Sets the geometry of this scape. Must of course be a one-dimensional geometry.
Parameters:
gometry - the basic geometry of this scape
Overrides:
setGeometry in class Scape

createScape

public void createScape()
Populate the scape with instances of its protoype agent. Creates cells and fills them with clones of prototype agent. Geometry, extent, and prototype agent should all be set before calling this method.
Overrides:
createScape in class Scape

randomizeCallingOrder

public void randomizeCallingOrder()
Randomizes the lookup used to determine calling order for random order execution of rules.

iterator

public ScapeIterator iterator()
Overrides:
iterator in class Scape

randomIterator

public ScapeIterator randomIterator()
Overrides:
randomIterator in class Scape

getSize

public int getSize()
Returns the size, or number of cells, (the product of all extents) of this FixedList.
Overrides:
getSize in class ScapeGraph

getCell

public Cell getCell(int xPosition)
Returns the cell existing at the specified coordinate.

setCell

public void setCell(int position,
                    Cell cell)
Sets the cell at the specified position to the supplied cell. Slightly faster than coordinate form.

getCell

public Cell getCell(CoordinateDiscrete coordinate)
Returns the cell existing at the specified coordinate.
Overrides:
getCell in class ScapeGraph

setCell

public void setCell(CoordinateDiscrete coordinate,
                    Cell cell)
Sets the cell at the specified coordinate to the supplied cell.
Overrides:
setCell in class ScapeGraph

findRandomCell

public Cell findRandomCell()
Returns a cell randomly selected from the lattice.
Overrides:
findRandomCell in class ScapeGraph

findRandomCoordinate

public CoordinateDiscrete findRandomCoordinate()
Returns a coordinate randomly selected from the lattice's space.
Overrides:
findRandomCoordinate in class ScapeGraph

getCellsNear

public Cell[] getCellsNear(Cell centralAgent,
                           int distance,
                           boolean includeSelf)
Returns cells that are near the provided cell. Bug; must fix for non-periodic space.
Parameters:
centralAgent - the agent to find cells near
distance - the distance to form centralCells to return cells
should - supplied agent be included in the return set
Overrides:
getCellsNear in class ScapeGraph

findNearestCell

public Cell findNearestCell(Cell origin,
                            Conditional condition)
Overrides:
findNearestCell in class ScapeGraph

findNearestCell

public Cell findNearestCell(Cell origin,
                            Conditional condition,
                            boolean includeOrigin)
Overrides:
findNearestCell in class ScapeGraph

findNearestCell

public Cell findNearestCell(Cell origin,
                            Conditional condition,
                            boolean includeOrigin,
                            double maximumDistance)
Overrides:
findNearestCell in class ScapeGraph

hasWithin

public boolean hasWithin(Cell origin,
                         Conditional condition,
                         boolean includeOrigin,
                         double maximumDistance)
Overrides:
hasWithin in class ScapeGraph

countWithin

public int countWithin(Cell origin,
                       Conditional condition,
                       boolean includeOrigin,
                       double maximumDistance)
Overrides:
countWithin in class ScapeGraph

getDistance

public int getDistance(Cell origin,
                       Cell target)
Overrides:
getDistance in class ScapeGraph

getCells

public Cell[] getCells()
Returns all agents in the scape as an array of cells (use this method to avoid coercion of memebers to Cell.)
Overrides:
getCells in class ScapeGraph

getAgents

public Agent[] getAgents()
Returns all agents in the scape as an array.
Overrides:
getAgents in class Scape

(c) 1998-2000 The Brookings Insitution
Webpage