Class Grid3D
- java.lang.Object
-
- jadex.commons.SimplePropertyObject
-
- jadex.commons.meta.TypedPropertyObject
-
- jadex.extension.envsupport.environment.SynchronizedPropertyObject
-
- jadex.extension.envsupport.environment.AbstractEnvironmentSpace
-
- jadex.extension.envsupport.environment.space3d.Space3D
-
- jadex.extension.envsupport.environment.space3d.Grid3D
-
- All Implemented Interfaces:
jadex.application.IExtensionInstance
,IPropertyObject
,ITypedPropertyObject
,IEnvironmentSpace
public class Grid3D extends Space3D
2D grid environment.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class jadex.extension.envsupport.environment.AbstractEnvironmentSpace
AbstractEnvironmentSpace.AtomicCounter
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
DEFAULT_NAME
The default ID for this space.static java.lang.String
NEIGHBORHOOD_MOORE
The moore neighborhood.static java.lang.String
NEIGHBORHOOD_VON_NEUMANN
The von neumann neighborhood.protected MultiCollection<IVector3,ISpaceObject>
objectsygridpos
All simobject id's accessible per position.static java.lang.String
PROPERTY_NEIGHBORHOOD
The neighborhood property.-
Fields inherited from class jadex.extension.envsupport.environment.space3d.Space3D
areasize, BORDER_RELAXED, BORDER_STRICT, BORDER_TORUS, PROPERTY_BORDER, PROPERTY_POSITION
-
Fields inherited from class jadex.extension.envsupport.environment.AbstractEnvironmentSpace
actionlist, actions, avatarmappings, classloader, config, dataconsumers, dataproviders, dataviewmappings, exta, fetcher, ia, initfutures, initialavatars, listeners, objectidcounter, objecttypes, objecttypesMeta, observercenters, perceptgenerators, perceptlist, perceptprocessors, percepttypes, pfetcher, processes, processtypes, spaceobjects, spaceobjectsbyowner, spaceobjectsbytype, taskidcounter, tasktypes, views, zombieobjects
-
Fields inherited from class jadex.extension.envsupport.environment.SynchronizedPropertyObject
monitor
-
Fields inherited from class jadex.commons.SimplePropertyObject
pcs, properties
-
-
Constructor Summary
Constructors Constructor Description Grid3D()
Creates a newContinuousSpace2D
with the default name.Grid3D(IVector3 areasize)
Creates a newContinuousSpace2D
with the default name.Grid3D(java.lang.Object name, IVector3 areasize)
Creates a newContinuousSpace2D
with a special ID.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description IVector1
calculateDistance(IVector1 dx, IVector1 dy)
Calculate the distance in the space.void
destroySpaceObject(java.lang.Object id)
Destroys an object in this space.IVector3
getEmptyGridPosition()
Get an empty position in the grid.java.util.Set<ISpaceObject>
getNearObjects(IVector3 position, IVector1 distance, java.lang.String type)
Retrieve all objects in the distance for a position.java.lang.String
getNeighborhood()
Get the neighborhood.IVector1
getShortestDirection(IVector1 pos1, IVector1 pos2, boolean isx)
Get the shortest (direct) direction between two coordinates.java.util.Collection<ISpaceObject>
getSpaceObjectsByGridPosition(IVector3 position, java.lang.Object type)
Get all SimObjects from a specific type at a specific grid positionvoid
initSpaceObject(ISpaceObject ret)
Init an object in this space.void
setAreaSize(IVector3 areasize)
Set the area size.void
setPosition(java.lang.Object id, IVector3 pos)
Set the position of an object.-
Methods inherited from class jadex.extension.envsupport.environment.space3d.Space3D
adjustPosition, calculateDistance, getAreaSize, getBorderMode, getDistance, getDistance, getNearestObject, getNearObjects, getNearObjects, getRandomPosition, getSpaceObjects
-
Methods inherited from class jadex.extension.envsupport.environment.AbstractEnvironmentSpace
addAvatarMappings, addDataConsumer, addDataProvider, addDataView, addDataViewMapping, addEnvironmentListener, addInitFuture, addInitialAvatar, addObjectTaskType, addPerceptGenerator, addPerceptProcessor, addPerceptType, addSpaceAction, addSpaceObjectType, addSpaceProcessType, addTaskListener, cancelSpaceAction, componentAdded, componentRemoved, createAvatar, createObjectTask, createPercept, createSpaceObject, createSpaceObjectZombie, createSpaceProcess, fireEnvironmentEvent, fireObjectEvent, getAvatar, getAvatar, getAvatarMapping, getAvatars, getClassLoader, getComponentActionList, getComponents, getComponentType, getDataConsumer, getDataConsumers, getDataProvider, getDataView, getDataViews, getExternalAccess, getFetcher, getOwner, getPerceptList, getPerceptType, getProcesses, getProperty, getSpaceAction, getSpaceObject, getSpaceObject0, getSpaceObjectsByType, getSpaceObjectsCollection, getSpaceObjectType, getSpaceProcess, getSpaceProcessNames, getViews, init, initSpace, mergeProperties, mergeProperties, performSpaceAction, performSpaceAction, removeAvatarMappings, removeDataView, removeEnvironmentListener, removeObjectTask, removeObjectTaskType, removePerceptGenerator, removePerceptProcessor, removePerceptType, removeSpaceAction, removeSpaceObjectType, removeSpaceProcess, removeSpaceProcessType, removeTaskListener, setFetcher, setInitData, setOwner, terminate, waitForTask
-
Methods inherited from class jadex.extension.envsupport.environment.SynchronizedPropertyObject
addPropertyChangeListener, getMonitor, getPropertyNames, hasProperty, removePropertyChangeListener, setProperty
-
Methods inherited from class jadex.commons.meta.TypedPropertyObject
getMetaData, getMetaDatas
-
Methods inherited from class jadex.commons.SimplePropertyObject
getProperties, setProperties, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface jadex.commons.IPropertyObject
getPropertyNames, hasProperty, setProperty
-
-
-
-
Field Detail
-
DEFAULT_NAME
public static final java.lang.String DEFAULT_NAME
The default ID for this space.
-
NEIGHBORHOOD_MOORE
public static final java.lang.String NEIGHBORHOOD_MOORE
The moore neighborhood.- See Also:
- Constant Field Values
-
NEIGHBORHOOD_VON_NEUMANN
public static final java.lang.String NEIGHBORHOOD_VON_NEUMANN
The von neumann neighborhood.- See Also:
- Constant Field Values
-
PROPERTY_NEIGHBORHOOD
public static final java.lang.String PROPERTY_NEIGHBORHOOD
The neighborhood property.- See Also:
- Constant Field Values
-
objectsygridpos
protected MultiCollection<IVector3,ISpaceObject> objectsygridpos
All simobject id's accessible per position.
-
-
Constructor Detail
-
Grid3D
public Grid3D()
Creates a newContinuousSpace2D
with the default name.- Parameters:
clockService
- the clock servicetimeCoefficient
- the time coefficient for time differences.areaSize
- the size of the 2D area
-
Grid3D
public Grid3D(IVector3 areasize)
Creates a newContinuousSpace2D
with the default name.- Parameters:
actionexecutor
- executor for component actionsareasize
- the size of the 2D area
-
Grid3D
public Grid3D(java.lang.Object name, IVector3 areasize)
Creates a newContinuousSpace2D
with a special ID.- Parameters:
name
- the name of this spaceareasize
- the size of the 2D areaactionexecutor
- executor for component actions
-
-
Method Detail
-
setAreaSize
public void setAreaSize(IVector3 areasize)
Set the area size.- Overrides:
setAreaSize
in classSpace3D
- Parameters:
areasize
- The area size.
-
getNeighborhood
public java.lang.String getNeighborhood()
Get the neighborhood.- Returns:
- Set the neighborhood.
-
getSpaceObjectsByGridPosition
public java.util.Collection<ISpaceObject> getSpaceObjectsByGridPosition(IVector3 position, java.lang.Object type)
Get all SimObjects from a specific type at a specific grid position
-
getEmptyGridPosition
public IVector3 getEmptyGridPosition()
Get an empty position in the grid.- Returns:
- Empty
IVector2
position.
-
setPosition
public void setPosition(java.lang.Object id, IVector3 pos)
Set the position of an object.- Overrides:
setPosition
in classSpace3D
- Parameters:
id
- The object id.pos
- The object position.
-
initSpaceObject
public void initSpaceObject(ISpaceObject ret)
Init an object in this space.- Overrides:
initSpaceObject
in classSpace3D
-
destroySpaceObject
public void destroySpaceObject(java.lang.Object id)
Destroys an object in this space.- Specified by:
destroySpaceObject
in interfaceIEnvironmentSpace
- Overrides:
destroySpaceObject
in classAbstractEnvironmentSpace
- Parameters:
objectId
- the object's ID
-
getNearObjects
public java.util.Set<ISpaceObject> getNearObjects(IVector3 position, IVector1 distance, java.lang.String type)
Retrieve all objects in the distance for a position. Uses position->object mapping, for fast operation.- Overrides:
getNearObjects
in classSpace3D
- Parameters:
position
- The position.distance
- The distance.type
- The type (or null for all objects).- Returns:
- The near objects.
-
calculateDistance
public IVector1 calculateDistance(IVector1 dx, IVector1 dy)
Calculate the distance in the space.- Parameters:
dx
- The distance in x.dy
- The distance in y.- Returns:
- The distance according to the distance metrics of the space.
-
getShortestDirection
public IVector1 getShortestDirection(IVector1 pos1, IVector1 pos2, boolean isx)
Get the shortest (direct) direction between two coordinates.- Parameters:
pos1
- The first position.pos2
- The second position.isx
- The flag indicating if x or y).- Returns:
- -1: left/down, +1: right/up, 0: no move
-
-