|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object net.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 instanceMethod Detail |
---|
public void sortObjectToABin(CRBaseSituatedModel dynamicModel_)
dynamicModel_
- CRBaseSituatedModel situated modelpublic void addSituatedModel(CRBaseSituatedModel situatedModel_)
addSituatedModel
in class CRWorld
situatedModel_
- CRBaseSituatedModel to addpublic void clearChildren()
clearChildren
in class CRWorld
public 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 |