uchicago.src.sim.space
Class Multi2DHexagonalGrid

java.lang.Object
  extended by uchicago.src.sim.space.AbsMulti2DGrid
      extended by uchicago.src.sim.space.AbsMulti2DHexagonalGrid
          extended by uchicago.src.sim.space.Multi2DHexagonalGrid
All Implemented Interfaces:
Discrete2DSpace, IMulti2DGrid

public class Multi2DHexagonalGrid
extends AbsMulti2DHexagonalGrid

A hexagonal grid object that can hold more than one object in its cells. The cells themselves store their occupants without any order. Use an OrderedMulti2DHexagonalGrid if you need the cell occupants to be stored in an ordered fashion. The object return by getObjectAt is a BagCell.

The hexagonal cells are referenced by x, y coordinates as follows:

       _
   _ / 1 \ _
 / 0 \ _ / 2 \
 \ _ / 4 \ _ /
 / 3 \ _ / 5 \
 \ _ / 7 \ _ /
 / 6 \ _ / 8 \
 \ _ /   \ _ /

 
Here we have a 3 x 3 hexagonal grid. The first row of cells is 0, 1, 2 such that 0,0 refers to cell 0, and 0,2 refers to cell 2. The next row of cells is 3, 4, 5, so 1,0 refers to cell 3 and so on. The last row of cells is 6, 7, and 8, so 2, 0 refers to cell 6. The ring of neighbors with radius one that surrounds cell 4 is composed of 1, 2, 5, 7, 3, and 0. The grid wraps as a toriod such that cell -1, 0 refers to cell 2 and cell 0, -1 is cell 6.

Version:
$Revision: 1.4 $ $Date: 2004/11/03 19:50:59 $

Field Summary
 
Fields inherited from class uchicago.src.sim.space.AbsMulti2DGrid
matrix, roIter, roList, xSize, ySize
 
Fields inherited from interface uchicago.src.sim.space.Discrete2DSpace
MOORE, VON_NEUMANN
 
Constructor Summary
Multi2DHexagonalGrid(int xSize, int ySize, boolean sparse)
          Creates this Multi2DHexagonalGrid with the specified dimensions.
 
Method Summary
 void putObjectAt(int x, int y, java.lang.Object object)
          Puts the specified Object into the cell at the specified coordinates.
 
Methods inherited from class uchicago.src.sim.space.AbsMulti2DHexagonalGrid
getMooreNeighbors, getMooreNeighbors, getMooreNeighborsLoc, getMooreNeighborsLoc, getNeighbors, getNeighbors, getNeighborsLoc, getNeighborsLoc, getVNNeighbors, getVNNeighbors, getVNNeighborsLoc, getVNNeighborsLoc
 
Methods inherited from class uchicago.src.sim.space.AbsMulti2DGrid
clear, getCellAt, getCellSizeAt, getIteratorAt, getMatrix, getObjectAt, getObjectsAt, getSize, getSizeX, getSizeY, getValueAt, putValueAt, rangeCheck, removeObjectAt, trim
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Multi2DHexagonalGrid

public Multi2DHexagonalGrid(int xSize,
                            int ySize,
                            boolean sparse)
Creates this Multi2DHexagonalGrid with the specified dimensions. sparse specifies whether the grid will be sparsely filled or not.

Parameters:
xSize - the number of columns in the grid
ySize - the number of rows in the grid
sparse - whether the grid will be sparsely populated or not
Method Detail

putObjectAt

public void putObjectAt(int x,
                        int y,
                        java.lang.Object object)
Puts the specified Object into the cell at the specified coordinates. The contents of the cell are unordered.

Specified by:
putObjectAt in interface Discrete2DSpace
Specified by:
putObjectAt in class AbsMulti2DGrid
Parameters:
x - the x coordinate
y - the y coordinate
object - the object to put