|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectsim.field.SparseField
sim.field.grid.SparseGrid2D
A storage facility for sparse objects in discrete 2D space, using HashMaps. SparseGrid2D differs from ObjectGrid2D in several respects:
Generally speaking, if you have a grid of objects, one per location, you should use an ObjectGrid2D. If you have a large grid occupied by a few objects, or those objects can pile up on the same grid location, you should use a SparseGrid2D.
In either case, you might consider storing the location of an object IN THE OBJECT ITSELF if you need to query for the object location often -- it's faster than the hashtable lookup in SparseGrid2D, and certainly faster than searching the entire array of an ObjectGrid2D.
Nested Class Summary |
Nested classes inherited from class sim.field.SparseField |
SparseField.LocationAndIndex |
Field Summary | |
protected int |
height
|
protected int |
width
|
Fields inherited from class sim.field.SparseField |
allObjects, LARGE_BAG_RATIO, locationAndIndexHash, MIN_BAG_SIZE, objectHash, removeEmptyBags, replaceLargeBags |
Constructor Summary | |
SparseGrid2D(int width,
int height)
|
Method Summary | |
int |
dlx(int x,
int y)
Hex downleft x. |
int |
dly(int x,
int y)
Hex downleft y. |
int |
downx(int x,
int y)
Hex down x. |
int |
downy(int x,
int y)
Hex down y. |
int |
drx(int x,
int y)
Hex downright x. |
int |
dry(int x,
int y)
Hex downright y. |
int |
getHeight()
Get the height |
void |
getNeighborsHamiltonianDistance(int x,
int y,
int dist,
boolean toroidal,
Bag result,
IntBag xPos,
IntBag yPos)
|
void |
getNeighborsHamiltonianDistance(int x,
int y,
int dist,
boolean toroidal,
IntBag xPos,
IntBag yPos)
|
void |
getNeighborsHexagonalDistance(int x,
int y,
int dist,
boolean toroidal,
Bag result,
IntBag xPos,
IntBag yPos)
|
void |
getNeighborsHexagonalDistance(int x,
int y,
int dist,
boolean toroidal,
IntBag xPos,
IntBag yPos)
|
void |
getNeighborsMaxDistance(int x,
int y,
int dist,
boolean toroidal,
Bag result,
IntBag xPos,
IntBag yPos)
|
void |
getNeighborsMaxDistance(int x,
int y,
int dist,
boolean toroidal,
IntBag xPos,
IntBag yPos)
|
Int2D |
getObjectLocation(java.lang.Object obj)
|
Double2D |
getObjectLocationAsDouble2D(java.lang.Object obj)
|
Bag |
getObjectsAtLocation(int x,
int y)
|
Bag |
getObjectsAtLocations(IntBag xPos,
IntBag yPos,
Bag result)
For each |
int |
getWidth()
Get the width |
Bag |
removeObjectsAtLocation(Int2D location)
|
Bag |
removeObjectsAtLocation(int x,
int y)
|
boolean |
setObjectLocation(java.lang.Object obj,
Int2D location)
|
boolean |
setObjectLocation(java.lang.Object obj,
int x,
int y)
|
int |
stx(int x)
Simple [and fast] toroidal x. |
int |
sty(int y)
Simple [and fast] toroidal y. |
boolean |
trb(int x,
int y)
Horizontal edge is on the bottom for triangle. |
boolean |
trt(int x,
int y)
Horizontal edge is on the top for triangle. |
int |
tx(int x)
Toroidal x. |
int |
ty(int y)
Toroidal y. |
int |
ulx(int x,
int y)
Hex upleft x. |
int |
uly(int x,
int y)
Hex upleft y. |
int |
upx(int x,
int y)
Hex up x. |
int |
upy(int x,
int y)
Hex up y. |
int |
urx(int x,
int y)
Hex upright x. |
int |
ury(int x,
int y)
Hex upright y. |
Methods inherited from class sim.field.SparseField |
clear, exists, getAllObjects, getObjectIndex, getObjectsAtLocation, getObjectsAtLocations, getRawObjectLocation, iterator, locationBagIterator, remove, removeObjectsAtLocation, setObjectLocation |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected int width
protected int height
Constructor Detail |
public SparseGrid2D(int width, int height)
Method Detail |
public final int getWidth()
Grid2D
getWidth
in interface Grid2D
public final int getHeight()
Grid2D
getHeight
in interface Grid2D
public final int tx(int x)
Grid2D
tx
in interface Grid2D
public final int ty(int y)
Grid2D
ty
in interface Grid2D
public final int stx(int x)
Grid2D
stx
in interface Grid2D
public final int sty(int y)
Grid2D
sty
in interface Grid2D
public final int ulx(int x, int y)
Grid2D
ulx
in interface Grid2D
public final int uly(int x, int y)
Grid2D
uly
in interface Grid2D
public final int urx(int x, int y)
Grid2D
urx
in interface Grid2D
public final int ury(int x, int y)
Grid2D
ury
in interface Grid2D
public final int dlx(int x, int y)
Grid2D
dlx
in interface Grid2D
public final int dly(int x, int y)
Grid2D
dly
in interface Grid2D
public final int drx(int x, int y)
Grid2D
drx
in interface Grid2D
public final int dry(int x, int y)
Grid2D
dry
in interface Grid2D
public final int upx(int x, int y)
Grid2D
upx
in interface Grid2D
public final int upy(int x, int y)
Grid2D
upy
in interface Grid2D
public final int downx(int x, int y)
Grid2D
downx
in interface Grid2D
public final int downy(int x, int y)
Grid2D
downy
in interface Grid2D
public boolean trb(int x, int y)
Grid2D
trb
in interface Grid2D
public boolean trt(int x, int y)
Grid2D
trt
in interface Grid2D
public final Bag getObjectsAtLocation(int x, int y)
public final Double2D getObjectLocationAsDouble2D(java.lang.Object obj)
public Int2D getObjectLocation(java.lang.Object obj)
public final Bag removeObjectsAtLocation(int x, int y)
public Bag removeObjectsAtLocation(Int2D location)
public final boolean setObjectLocation(java.lang.Object obj, int x, int y)
public boolean setObjectLocation(java.lang.Object obj, Int2D location)
public final void getNeighborsMaxDistance(int x, int y, int dist, boolean toroidal, IntBag xPos, IntBag yPos)
getNeighborsMaxDistance
in interface Grid2D
public final void getNeighborsHamiltonianDistance(int x, int y, int dist, boolean toroidal, IntBag xPos, IntBag yPos)
getNeighborsHamiltonianDistance
in interface Grid2D
public final void getNeighborsHexagonalDistance(int x, int y, int dist, boolean toroidal, IntBag xPos, IntBag yPos)
getNeighborsHexagonalDistance
in interface Grid2D
public final void getNeighborsMaxDistance(int x, int y, int dist, boolean toroidal, Bag result, IntBag xPos, IntBag yPos)
public final void getNeighborsHamiltonianDistance(int x, int y, int dist, boolean toroidal, Bag result, IntBag xPos, IntBag yPos)
public final void getNeighborsHexagonalDistance(int x, int y, int dist, boolean toroidal, Bag result, IntBag xPos, IntBag yPos)
public Bag getObjectsAtLocations(IntBag xPos, IntBag yPos, Bag result)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |