|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectnet.lenkaspace.creeper.model.CRBaseModel
net.lenkaspace.creeper.model.CRWorld
net.lenkaspace.creeper.model.CRBinWorld
public class CRBinWorld
Subclass of CRWorld that holds CRSituatedModels in a grid of bins. Contains methods that enable accessing only a subgroup of objects belonging to a single bin instead of all existing CRSituatedModels. This is useful e.g. for optimizing collision detection execution time when the world contains a lot of objects. As an example of where this can be used, see https://lenkaspace.net/lab/swarmSystems/controllingAntConstruction
| Field Summary |
|---|
| Fields inherited from class net.lenkaspace.creeper.model.CRBaseModel |
|---|
childModels, id |
| Constructor Summary | |
|---|---|
CRBinWorld(CRVector3d binSize_,
int id_,
CRVector3d size_,
CRController controller_)
Constructor |
|
| Method Summary | |
|---|---|
void |
addSituatedModel(CRBaseSituatedModel situatedModel_)
Add a CRBaseSituatedModel to the list of situatedModels. |
void |
clearChildren()
Clear all arrays that store any child objects. |
int |
getBinIndexForBinCoordinates(CRVector3d binCoordinates_)
Get index of a bin based on its bin coordinates |
int |
getBinIndexForPosition(CRVector3d position_)
Get index of a bin based on a position |
java.util.ArrayList<CRBaseSituatedModel> |
getRelevantObjectsAroundPosition(CRVector3d position_,
double radius_)
Get all CRBaseSituatedModels that are in a bin around a position. |
java.util.ArrayList<CRBaseSituatedModel> |
getRelevantObjectsObject(CRBaseSituatedModel object_)
Get all CRBaseSituatedModels that are in a bin around an object. |
void |
sortObjectToABin(CRBaseSituatedModel dynamicModel_)
Place an object to a bin based on its position. |
| Methods inherited from class net.lenkaspace.creeper.model.CRWorld |
|---|
addDynamicModel, getController, getDynamicModels, getHasScenarios, getScenarios, getScenariosAsArray, getSituatedModels, getSize, isBorderless, removeDynamicModel, removeSituatedModel, setBorderless, setDynamicModels, setSituatedModels, setSize, update |
| Methods inherited from class net.lenkaspace.creeper.model.CRBaseModel |
|---|
addChildModel, getId, getIsRemoved, onRunEnd, onRunStart, onTrialEnd, onTrialStart, removeChildModel, setId, setIsRemoved |
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public CRBinWorld(CRVector3d binSize_,
int id_,
CRVector3d size_,
CRController controller_)
binSize_ - CRVector3d [width, height, depth] dimensions of a single binid_ - int nt unique idsize_ - CRVector3d size [width, height, depth]controller_ - CRController holding controller instance| Method Detail |
|---|
public void sortObjectToABin(CRBaseSituatedModel dynamicModel_)
dynamicModel_ - CRBaseSituatedModel situated modelpublic void addSituatedModel(CRBaseSituatedModel situatedModel_)
addSituatedModel in class CRWorldsituatedModel_ - CRBaseSituatedModel to addpublic void clearChildren()
clearChildren in class CRWorldpublic int getBinIndexForPosition(CRVector3d position_)
position_ - CRVector3d position
public int getBinIndexForBinCoordinates(CRVector3d binCoordinates_)
binCoordinates_ - CRVector3d bin coordinates in form [column, row ,0]
public java.util.ArrayList<CRBaseSituatedModel> getRelevantObjectsObject(CRBaseSituatedModel object_)
object_ - CRBaseSituatedModel object
public java.util.ArrayList<CRBaseSituatedModel> getRelevantObjectsAroundPosition(CRVector3d position_,
double radius_)
position_ - CRVector3d positionradius_ - int radius around a position for testing if other bins should be included
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||