jist.swans.field
Class Spatial.Grid

java.lang.Object
  extended by jist.swans.field.Spatial
      extended by jist.swans.field.Spatial.Grid
Enclosing class:
Spatial

public static class Spatial.Grid
extends Spatial

Grid-based binning.


Nested Class Summary
 
Nested classes/interfaces inherited from class jist.swans.field.Spatial
Spatial.Grid, Spatial.HierGrid, Spatial.LinearList, Spatial.SpatialTransmitVisitor, Spatial.SpatialVisitor, Spatial.TiledWraparound
 
Field Summary
private  Spatial.LinearList[][] bins
          grid of sub-bins.
private  float di
          bin dimensions.
private  float dj
          bin dimensions.
 
Fields inherited from class jist.swans.field.Spatial
bl, br, size, tl, tr
 
Constructor Summary
Spatial.Grid(Location tr, int divisions)
          Create a new grid bin.
Spatial.Grid(Location bl, Location tr, int divisions)
          Create a new grid bin.
Spatial.Grid(Location bl, Location br, Location tl, Location tr, int divisions)
          Create a new grid bin.
 
Method Summary
 void add(Field.RadioData radioData)
          Add a radio to bin.
 void del(Field.RadioData radioData)
          Delete a radio from bin.
private  Spatial.LinearList getBin(Location l)
          Return grid sub-bin.
private  int getBinI(Location l)
          Return grid bin x-coordinate.
private  int getBinJ(Location l)
          Return grid bin y-coordinate.
 Field.RadioData move(Field.RadioData radioData, Location newLoc)
          Update a radio location.
 int visit(Spatial.SpatialVisitor visitor)
          Visit radios in bin.
private  int visitBin(Spatial.SpatialTransmitVisitor visitor, RadioInfo srcInfo, Location srcLoc, Message msg, java.lang.Long durationObj, double limit, int di, int dj)
          Helper method to visit a sub-bin within grid.
 int visitTransmit(Spatial.SpatialTransmitVisitor visitor, RadioInfo srcInfo, Location srcLoc, Message msg, java.lang.Long durationObj, double limit)
          Visit radios in bin with transmission visitor.
 
Methods inherited from class jist.swans.field.Spatial
area, getBottomLeft, getNearest, getSize, getTopRight, moveInside
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

bins

private Spatial.LinearList[][] bins
grid of sub-bins.


di

private float di
bin dimensions.


dj

private float dj
bin dimensions.

Constructor Detail

Spatial.Grid

public Spatial.Grid(Location tr,
                    int divisions)
Create a new grid bin.

Parameters:
tr - top-right corner location
divisions - grid divisions

Spatial.Grid

public Spatial.Grid(Location bl,
                    Location tr,
                    int divisions)
Create a new grid bin.

Parameters:
bl - bottom-left corner location
tr - top-right corner location
divisions - grid divisions

Spatial.Grid

public Spatial.Grid(Location bl,
                    Location br,
                    Location tl,
                    Location tr,
                    int divisions)
Create a new grid bin.

Parameters:
bl - bottom-left corner location
br - bottom-right corner location
tl - top-left corner location
tr - top-right corner location
divisions - grid divisions
Method Detail

getBinI

private int getBinI(Location l)
Return grid bin x-coordinate.

Parameters:
l - spatial location desired
Returns:
grid bin x-coordinate

getBinJ

private int getBinJ(Location l)
Return grid bin y-coordinate.

Parameters:
l - spatial location desired
Returns:
grid bin y-coordinate

getBin

private Spatial.LinearList getBin(Location l)
Return grid sub-bin.

Parameters:
l - spatial location desired
Returns:
sub-bin containing coordinate

add

public void add(Field.RadioData radioData)
Add a radio to bin.

Specified by:
add in class Spatial
Parameters:
radioData - radio information (location inside bin limits)

del

public void del(Field.RadioData radioData)
Delete a radio from bin.

Specified by:
del in class Spatial
Parameters:
radioData - radio information (location inside bin limits)

move

public Field.RadioData move(Field.RadioData radioData,
                            Location newLoc)
Update a radio location.

Specified by:
move in class Spatial
Parameters:
radioData - radio information
newLoc - destination of move
Returns:
radio information (unupdated) if new location outside of bin; null if new location inside bin

visitTransmit

public int visitTransmit(Spatial.SpatialTransmitVisitor visitor,
                         RadioInfo srcInfo,
                         Location srcLoc,
                         Message msg,
                         java.lang.Long durationObj,
                         double limit)
Visit radios in bin with transmission visitor.

Specified by:
visitTransmit in class Spatial
Parameters:
visitor - transmission visitor object
srcInfo - transmission source radio
srcLoc - transmission source location
msg - message to transmit
durationObj - transmission duration
limit - propagation limit
Returns:
number of receiving radios

visitBin

private int visitBin(Spatial.SpatialTransmitVisitor visitor,
                     RadioInfo srcInfo,
                     Location srcLoc,
                     Message msg,
                     java.lang.Long durationObj,
                     double limit,
                     int di,
                     int dj)
Helper method to visit a sub-bin within grid.

Parameters:
visitor - visitor object
srcInfo - source radio information
srcLoc - source location
msg - message to transmit
durationObj - duration of message transmission
limit - propagation limit
di - grid x-coordinate
dj - grid y-coordinate
Returns:
number of radios visited

visit

public int visit(Spatial.SpatialVisitor visitor)
Visit radios in bin.

Specified by:
visit in class Spatial
Parameters:
visitor - visitor object
Returns:
number of radios visited