Sirikata
Classes | Public Member Functions | Private Types | Private Attributes
Sirikata::StandardLocationService Class Reference

Standard location service, which functions entirely based on location updates from objects and other spaces servers. More...

#include <StandardLocationService.hpp>

Inheritance diagram for Sirikata::StandardLocationService:
Collaboration diagram for Sirikata::StandardLocationService:

List of all members.

Classes

struct  LocationInfo

Public Member Functions

 StandardLocationService (SpaceContext *ctx, LocationUpdatePolicy *update_policy)
virtual bool contains (const UUID &uuid) const
 Indicates whether this location service is tracking the given object.
bool isLocal (const UUID &uuid) const
bool isReplica (const UUID &uuid) const
virtual void service ()
virtual uint64 epoch (const UUID &uuid)
 Methods dealing with information requests.
virtual TimedMotionVector3f location (const UUID &uuid)
virtual Vector3f currentPosition (const UUID &uuid)
virtual TimedMotionQuaternion orientation (const UUID &uuid)
virtual Quaternion currentOrientation (const UUID &uuid)
virtual AggregateBoundingInfo bounds (const UUID &uuid)
virtual const String & mesh (const UUID &uuid)
virtual const String & physics (const UUID &uuid)
virtual void addLocalObject (const UUID &uuid, const TimedMotionVector3f &loc, const TimedMotionQuaternion &orient, const AggregateBoundingInfo &bounds, const String &mesh, const String &physics, const String &zernike)
 Methods dealing with local objects.
virtual void removeLocalObject (const UUID &uuid)
virtual void addLocalAggregateObject (const UUID &uuid, const TimedMotionVector3f &loc, const TimedMotionQuaternion &orient, const AggregateBoundingInfo &bounds, const String &mesh, const String &physics)
 Aggregate objects are handled separately from other local objects.
virtual void removeLocalAggregateObject (const UUID &uuid)
virtual void updateLocalAggregateLocation (const UUID &uuid, const TimedMotionVector3f &newval)
virtual void updateLocalAggregateOrientation (const UUID &uuid, const TimedMotionQuaternion &newval)
virtual void updateLocalAggregateBounds (const UUID &uuid, const AggregateBoundingInfo &newval)
virtual void updateLocalAggregateMesh (const UUID &uuid, const String &newval)
virtual void updateLocalAggregatePhysics (const UUID &uuid, const String &newval)
virtual void addReplicaObject (const Time &t, const UUID &uuid, bool agg, const TimedMotionVector3f &loc, const TimedMotionQuaternion &orient, const AggregateBoundingInfo &bounds, const String &mesh, const String &physics, const String &zernike)
 Methods dealing with replica objects.
virtual void removeReplicaObject (const Time &t, const UUID &uuid)
virtual void receiveMessage (Message *msg)
 MessageRecipient Interface.
virtual bool locationUpdate (UUID source, void *buffer, uint32 length)
virtual void commandProperties (const Command::Command &cmd, Command::Commander *cmdr, Command::CommandID cmdid)
 Get basic properties about this location service, e.g.
virtual void commandObjectProperties (const Command::Command &cmd, Command::Commander *cmdr, Command::CommandID cmdid)
 Get all the properties stored about an object.

Private Types

typedef
std::tr1::unordered_map< UUID,
LocationInfo, UUID::Hasher
LocationMap

Private Attributes

LocationMap mLocations

Detailed Description

Standard location service, which functions entirely based on location updates from objects and other spaces servers.


Member Typedef Documentation

typedef std::tr1::unordered_map<UUID, LocationInfo, UUID::Hasher> Sirikata::StandardLocationService::LocationMap [private]

Constructor & Destructor Documentation

Sirikata::StandardLocationService::StandardLocationService ( SpaceContext ctx,
LocationUpdatePolicy update_policy 
)

Member Function Documentation

void Sirikata::StandardLocationService::addLocalAggregateObject ( const UUID uuid,
const TimedMotionVector3f loc,
const TimedMotionQuaternion orient,
const AggregateBoundingInfo bounds,
const String &  mesh,
const String &  physics 
) [virtual]

Aggregate objects are handled separately from other local objects.

All the information is tracked, but listeners are notified about them separately. This is necessary since not filtering them would cause them to filter back into whatever system generated them. In general, users other than Proximity should learn about aggregates and treat them as normal objects. Proximity ignores them since it is the one that generates them.

Implements Sirikata::LocationService.

References Sirikata::StandardLocationService::LocationInfo::aggregate, bounds(), Sirikata::StandardLocationService::LocationInfo::local, location(), mesh(), mLocations, Sirikata::LocationService::notifyLocalObjectAdded(), orientation(), physics(), Sirikata::StandardLocationService::LocationInfo::props, Sirikata::SequencedPresenceProperties::reset(), Sirikata::SequencedPresenceProperties::setBounds(), Sirikata::SequencedPresenceProperties::setLocation(), Sirikata::SequencedPresenceProperties::setMesh(), Sirikata::SequencedPresenceProperties::setOrientation(), and Sirikata::SequencedPresenceProperties::setPhysics().

void Sirikata::StandardLocationService::addLocalObject ( const UUID uuid,
const TimedMotionVector3f loc,
const TimedMotionQuaternion orient,
const AggregateBoundingInfo bounds,
const String &  mesh,
const String &  physics,
const String &  zernike 
) [virtual]
void Sirikata::StandardLocationService::addReplicaObject ( const Time t,
const UUID uuid,
bool  agg,
const TimedMotionVector3f loc,
const TimedMotionQuaternion orient,
const AggregateBoundingInfo bounds,
const String &  mesh,
const String &  physics,
const String &  zernike 
) [virtual]
AggregateBoundingInfo Sirikata::StandardLocationService::bounds ( const UUID uuid) [virtual]
void Sirikata::StandardLocationService::commandObjectProperties ( const Command::Command cmd,
Command::Commander cmdr,
Command::CommandID  cmdid 
) [virtual]
void Sirikata::StandardLocationService::commandProperties ( const Command::Command cmd,
Command::Commander cmdr,
Command::CommandID  cmdid 
) [virtual]

Get basic properties about this location service, e.g.

type, number of objects tracked, etc.

Implements Sirikata::LocationService.

References Sirikata::Command::EmptyResult(), mLocations, and Sirikata::Command::Commander::result().

bool Sirikata::StandardLocationService::contains ( const UUID uuid) const [virtual]

Indicates whether this location service is tracking the given object.

It is only safe to request information

Implements Sirikata::LocationService.

References mLocations.

Referenced by receiveMessage().

Quaternion Sirikata::StandardLocationService::currentOrientation ( const UUID uuid) [virtual]
Vector3f Sirikata::StandardLocationService::currentPosition ( const UUID uuid) [virtual]
uint64 Sirikata::StandardLocationService::epoch ( const UUID uuid) [virtual]
bool Sirikata::StandardLocationService::isLocal ( const UUID uuid) const

References mLocations.

Referenced by isReplica(), locationUpdate(), and receiveMessage().

bool Sirikata::StandardLocationService::isReplica ( const UUID uuid) const [inline]

References isLocal().

TimedMotionVector3f Sirikata::StandardLocationService::location ( const UUID uuid) [virtual]
bool Sirikata::StandardLocationService::locationUpdate ( UUID  source,
void *  buffer,
uint32  length 
) [virtual]
const String & Sirikata::StandardLocationService::mesh ( const UUID uuid) [virtual]
TimedMotionQuaternion Sirikata::StandardLocationService::orientation ( const UUID uuid) [virtual]
const String & Sirikata::StandardLocationService::physics ( const UUID uuid) [virtual]
void Sirikata::StandardLocationService::receiveMessage ( Message msg) [virtual]
void Sirikata::StandardLocationService::removeLocalAggregateObject ( const UUID uuid) [virtual]
void Sirikata::StandardLocationService::removeLocalObject ( const UUID uuid) [virtual]
void Sirikata::StandardLocationService::removeReplicaObject ( const Time t,
const UUID uuid 
) [virtual]
void Sirikata::StandardLocationService::service ( ) [virtual]
void Sirikata::StandardLocationService::updateLocalAggregateBounds ( const UUID uuid,
const AggregateBoundingInfo newval 
) [virtual]
void Sirikata::StandardLocationService::updateLocalAggregateLocation ( const UUID uuid,
const TimedMotionVector3f newval 
) [virtual]
void Sirikata::StandardLocationService::updateLocalAggregateMesh ( const UUID uuid,
const String &  newval 
) [virtual]
void Sirikata::StandardLocationService::updateLocalAggregateOrientation ( const UUID uuid,
const TimedMotionQuaternion newval 
) [virtual]
void Sirikata::StandardLocationService::updateLocalAggregatePhysics ( const UUID uuid,
const String &  newval 
) [virtual]

Member Data Documentation


The documentation for this class was generated from the following files: