public class ProximityTracker
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
protected class |
ProximityTracker.PerceiverData |
Modifier and Type | Field and Description |
---|---|
protected float |
hystericalMargin |
protected OID |
instanceOid |
protected java.util.concurrent.locks.Lock |
lock |
protected Namespace |
namespace |
protected ObjectTracker.NotifyReactionRadiusCallback |
notifyCallback |
protected java.util.Map<OID,ProximityTracker.PerceiverData> |
perceiverDataMap
This maps a perceiver oid into an object containing the list of
perceived objects, and the list of objects in range.
|
protected ObjectTracker.RemoteObjectFilter |
remoteObjectFilter |
protected boolean |
running |
protected atavism.server.objects.ProximityTracker.Updater |
updater |
protected java.lang.Thread |
updaterThread |
Constructor and Description |
---|
ProximityTracker(Namespace namespace,
OID instanceOid) |
ProximityTracker(Namespace namespace,
OID instanceOid,
float hystericalMargin,
ObjectTracker.NotifyReactionRadiusCallback notifyCallback,
ObjectTracker.RemoteObjectFilter remoteObjectFilter) |
Modifier and Type | Method and Description |
---|---|
void |
addTrackedPerceiver(OID perceiverOid,
InterpolatedWorldNode wnode,
java.lang.Integer reactionRadius) |
OID |
getInstanceOid() |
java.util.List<OID> |
getOidsInRadius(OID perceiverOid) |
void |
handlePerception(PerceptionMessage perceptionMessage) |
void |
handleUpdateWorldNode(long oid,
WorldManagerClient.UpdateWorldNodeMessage wnodeMsg) |
boolean |
hasTrackedPerceiver(OID oid) |
protected boolean |
maybeAddPerceivedObject(PerceptionMessage.ObjectNote objectNote) |
protected void |
maybeRemovePerceivedObject(OID oid,
PerceptionMessage.ObjectNote objectNote,
OID targetOid) |
protected void |
performNotification(OID perceiverOid,
OID perceivedOid,
boolean inRadius,
boolean wasInRadius) |
protected void |
removePerceivedObject(OID targetOid,
OID oid) |
void |
removeTrackedPerceiver(OID perceiverOid) |
void |
setRunning(boolean running) |
protected void |
testProximity(ProximityTracker.PerceiverData perceiverData,
ProximityTracker.PerceiverData perceivedData,
boolean interpolatePerceiver,
boolean interpolatePerceived)
Test if the perceived object has come in or out of range of the
perceiver object; if so, we change the inRangeOids set for the
perceiver, and notify the perceiver.
|
protected void |
updateEntity(ProximityTracker.PerceiverData perceiverData) |
protected Namespace namespace
protected OID instanceOid
protected float hystericalMargin
protected ObjectTracker.NotifyReactionRadiusCallback notifyCallback
protected ObjectTracker.RemoteObjectFilter remoteObjectFilter
protected atavism.server.objects.ProximityTracker.Updater updater
protected java.lang.Thread updaterThread
protected boolean running
protected java.util.Map<OID,ProximityTracker.PerceiverData> perceiverDataMap
protected java.util.concurrent.locks.Lock lock
public ProximityTracker(Namespace namespace, OID instanceOid, float hystericalMargin, ObjectTracker.NotifyReactionRadiusCallback notifyCallback, ObjectTracker.RemoteObjectFilter remoteObjectFilter)
public OID getInstanceOid()
public void addTrackedPerceiver(OID perceiverOid, InterpolatedWorldNode wnode, java.lang.Integer reactionRadius)
public boolean hasTrackedPerceiver(OID oid)
public void removeTrackedPerceiver(OID perceiverOid)
protected boolean maybeAddPerceivedObject(PerceptionMessage.ObjectNote objectNote)
protected void testProximity(ProximityTracker.PerceiverData perceiverData, ProximityTracker.PerceiverData perceivedData, boolean interpolatePerceiver, boolean interpolatePerceived)
protected void performNotification(OID perceiverOid, OID perceivedOid, boolean inRadius, boolean wasInRadius)
protected void updateEntity(ProximityTracker.PerceiverData perceiverData)
public void handlePerception(PerceptionMessage perceptionMessage)
public void handleUpdateWorldNode(long oid, WorldManagerClient.UpdateWorldNodeMessage wnodeMsg)
protected void maybeRemovePerceivedObject(OID oid, PerceptionMessage.ObjectNote objectNote, OID targetOid)
public void setRunning(boolean running)