Sirikata
|
Standard location service, which functions entirely based on location updates from objects and other spaces servers. More...
#include <BulletPhysicsService.hpp>
Public Types | |
typedef std::tr1::function < void(MeshdataPtr)> | MeshdataParsedCallback |
Public Member Functions | |
BulletPhysicsService (SpaceContext *ctx, LocationUpdatePolicy *update_policy) | |
virtual | ~BulletPhysicsService () |
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) |
bool | isFixed (const UUID &uuid) |
bool | directMotionRequestsEnabled (const UUID &uuid) |
void | setLocation (const UUID &uuid, const TimedMotionVector3f &newloc) |
void | setOrientation (const UUID &uuid, const TimedMotionQuaternion &neworient) |
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. | |
void | getMesh (const Transfer::URI meshURI, const UUID uuid, MeshdataParsedCallback cb) |
void | getMeshCallback (Transfer::ResourceDownloadTaskPtr taskptr, Transfer::TransferRequestPtr request, Transfer::DenseDataPtr response, MeshdataParsedCallback cb) |
LocationInfo & | info (const UUID &uuid) |
const LocationInfo & | info (const UUID &uuid) const |
btDiscreteDynamicsWorld * | dynamicsWorld () |
btBroadphaseInterface * | broadphase () |
void | addTickObject (const UUID &uuid) |
void | removeTickObject (const UUID &uuid) |
void | addInternalTickObject (const UUID &uuid) |
void | removeInternalTickObject (const UUID &uuid) |
void | addDeactivateableObject (const UUID &uuid) |
void | removeDeactivateableObject (const UUID &uuid) |
void | addUpdate (const UUID &uuid) |
void | updateObjectFromDeactivation (const UUID &uuid) |
void | internalTickCallback () |
Protected Types | |
typedef std::tr1::unordered_map< UUID, LocationInfo, UUID::Hasher > | LocationMap |
typedef std::tr1::unordered_set< UUID, UUID::Hasher > | UUIDSet |
typedef std::tr1::unordered_map< UUID, Transfer::ResourceDownloadTaskPtr, UUID::Hasher > | MeshDownloadMap |
Protected Attributes | |
LocationMap | mLocations |
UUIDSet | mTickObjects |
UUIDSet | mInternalTickObjects |
UUIDSet | mDeactivateableObjects |
UUIDSet | physicsUpdates |
uint32 | mUpdateIteration |
MeshDownloadMap | mMeshDownloads |
Private Member Functions | |
void | updatePhysicsWorld (const UUID &uuid) |
void | updatePhysicsWorldWithMesh (const UUID &uuid, MeshdataPtr retrievedMesh) |
void | cleanupLocationInfo (LocationInfo &locinfo) |
Private Attributes | |
btBroadphaseInterface * | mBroadphase |
btDefaultCollisionConfiguration * | collisionConfiguration |
btCollisionDispatcher * | dispatcher |
btSequentialImpulseConstraintSolver * | solver |
btDiscreteDynamicsWorld * | mDynamicsWorld |
Time | mLastTime |
Time | mLastDeactivationTime |
ModelsSystem * | mModelsSystem |
Mesh::Filter * | mModelFilter |
Transfer::TransferMediator * | mTransferMediator |
Transfer::TransferPoolPtr | mTransferPool |
Network::IOStrand * | mParsingStrand |
Standard location service, which functions entirely based on location updates from objects and other spaces servers.
typedef std::tr1::unordered_map<UUID, LocationInfo, UUID::Hasher> Sirikata::BulletPhysicsService::LocationMap [protected] |
typedef std::tr1::function<void(MeshdataPtr)> Sirikata::BulletPhysicsService::MeshdataParsedCallback |
typedef std::tr1::unordered_map<UUID, Transfer::ResourceDownloadTaskPtr, UUID::Hasher> Sirikata::BulletPhysicsService::MeshDownloadMap [protected] |
typedef std::tr1::unordered_set<UUID, UUID::Hasher> Sirikata::BulletPhysicsService::UUIDSet [protected] |
Sirikata::BulletPhysicsService::BulletPhysicsService | ( | SpaceContext * | ctx, |
LocationUpdatePolicy * | update_policy | ||
) |
References BULLETLOG, collisionConfiguration, Sirikata::Logging::detailed, dispatcher, Sirikata::FactoryImpl< T, Ftype >::getConstructor(), Sirikata::Transfer::TransferMediator::getSingleton(), Sirikata::ModelsSystemFactory::getSingleton(), mBroadphase, Sirikata::LocationService::mContext, mDynamicsWorld, mLastDeactivationTime, mLastTime, mModelFilter, mModelsSystem, mTransferMediator, mTransferPool, Sirikata::Transfer::TransferMediator::registerClient(), Sirikata::Context::simTime(), solver, and Sirikata::Logging::warning.
Sirikata::BulletPhysicsService::~BulletPhysicsService | ( | ) | [virtual] |
void Sirikata::BulletPhysicsService::addDeactivateableObject | ( | const UUID & | uuid | ) |
References mDeactivateableObjects.
Referenced by Sirikata::BulletRigidBodyObject::addRigidBody(), and Sirikata::BulletCharacterObject::load().
void Sirikata::BulletPhysicsService::addInternalTickObject | ( | const UUID & | uuid | ) |
References mInternalTickObjects.
Referenced by Sirikata::BulletRigidBodyObject::addRigidBody().
void Sirikata::BulletPhysicsService::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::LocationInfo::aggregate, bounds(), Sirikata::LocationInfo::local, location(), mesh(), mLocations, Sirikata::LocationService::notifyLocalObjectAdded(), orientation(), physics(), Sirikata::LocationInfo::props, Sirikata::SequencedPresenceProperties::setBounds(), Sirikata::SequencedPresenceProperties::setLocation(), Sirikata::SequencedPresenceProperties::setMesh(), Sirikata::SequencedPresenceProperties::setOrientation(), Sirikata::SequencedPresenceProperties::setPhysics(), and updatePhysicsWorld().
void Sirikata::BulletPhysicsService::addLocalObject | ( | const UUID & | uuid, |
const TimedMotionVector3f & | loc, | ||
const TimedMotionQuaternion & | orient, | ||
const AggregateBoundingInfo & | bounds, | ||
const String & | mesh, | ||
const String & | physics, | ||
const String & | zernike | ||
) | [virtual] |
Methods dealing with local objects.
Implements Sirikata::LocationService.
References Sirikata::LocationInfo::aggregate, bounds(), CONTEXT_SPACETRACE, Sirikata::SpaceContext::id(), Sirikata::LocationInfo::local, location(), Sirikata::LocationService::mContext, mesh(), mLocations, Sirikata::LocationService::notifyLocalObjectAdded(), Sirikata::LocationService::notifyReplicaObjectRemoved(), orientation(), physics(), Sirikata::LocationInfo::props, Sirikata::SequencedPresenceProperties::setBounds(), Sirikata::SequencedPresenceProperties::setLocation(), Sirikata::SequencedPresenceProperties::setMesh(), Sirikata::SequencedPresenceProperties::setOrientation(), Sirikata::SequencedPresenceProperties::setPhysics(), and updatePhysicsWorld().
void Sirikata::BulletPhysicsService::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] |
Methods dealing with replica objects.
Implements Sirikata::LocationService.
References Sirikata::LocationInfo::aggregate, bounds(), CONTEXT_SPACETRACE, Sirikata::SpaceContext::id(), Sirikata::LocationInfo::local, location(), Sirikata::LocationService::mContext, mesh(), mLocations, Sirikata::LocationService::notifyReplicaObjectAdded(), orientation(), physics(), Sirikata::LocationInfo::props, Sirikata::SequencedPresenceProperties::reset(), Sirikata::SequencedPresenceProperties::setBounds(), Sirikata::SequencedPresenceProperties::setLocation(), Sirikata::SequencedPresenceProperties::setMesh(), Sirikata::SequencedPresenceProperties::setOrientation(), Sirikata::SequencedPresenceProperties::setPhysics(), and updatePhysicsWorld().
void Sirikata::BulletPhysicsService::addTickObject | ( | const UUID & | uuid | ) |
References mTickObjects.
Referenced by Sirikata::BulletCharacterObject::load().
void Sirikata::BulletPhysicsService::addUpdate | ( | const UUID & | uuid | ) |
References physicsUpdates.
Referenced by Sirikata::BulletCharacterObject::postTick(), and Sirikata::BulletRigidBodyObject::updateObjectFromBullet().
AggregateBoundingInfo Sirikata::BulletPhysicsService::bounds | ( | const UUID & | uuid | ) | [virtual] |
Implements Sirikata::LocationService.
References Sirikata::PresenceProperties::bounds(), mLocations, and Sirikata::LocationInfo::props.
Referenced by addLocalAggregateObject(), addLocalObject(), and addReplicaObject().
btBroadphaseInterface* Sirikata::BulletPhysicsService::broadphase | ( | ) | [inline] |
Referenced by Sirikata::BulletCharacterObject::load().
void Sirikata::BulletPhysicsService::cleanupLocationInfo | ( | LocationInfo & | locinfo | ) | [private] |
References Sirikata::LocationInfo::simObject, and Sirikata::BulletObject::unload().
Referenced by removeLocalAggregateObject(), removeLocalObject(), removeReplicaObject(), and ~BulletPhysicsService().
void Sirikata::BulletPhysicsService::commandObjectProperties | ( | const Command::Command & | cmd, |
Command::Commander * | cmdr, | ||
Command::CommandID | cmdid | ||
) | [virtual] |
Get all the properties stored about an object.
Implements Sirikata::LocationService.
References Sirikata::Command::EmptyResult(), Sirikata::LocationService::mContext, mLocations, Sirikata::Context::recentSimTime(), Sirikata::Command::Commander::result(), and Sirikata::ToString().
void Sirikata::BulletPhysicsService::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::BulletPhysicsService::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::BulletPhysicsService::currentOrientation | ( | const UUID & | uuid | ) | [virtual] |
Implements Sirikata::LocationService.
References Sirikata::TemporalValueBase< Value, TimeType >::extrapolate(), Sirikata::LocationService::mContext, orientation(), position, and Sirikata::Context::simTime().
Referenced by Sirikata::BulletCharacterObject::applyForcedOrientation(), Sirikata::BulletCharacterObject::load(), Sirikata::BulletCharacterObject::preTick(), Sirikata::BulletRigidBodyObject::updateBulletFromObject(), and updateObjectFromDeactivation().
Vector3f Sirikata::BulletPhysicsService::currentPosition | ( | const UUID & | uuid | ) | [virtual] |
Implements Sirikata::LocationService.
References Sirikata::TemporalValueBase< Value, TimeType >::extrapolate(), location(), Sirikata::LocationService::mContext, position, and Sirikata::Context::simTime().
Referenced by Sirikata::BulletCharacterObject::applyForcedLocation(), Sirikata::BulletCharacterObject::load(), Sirikata::BulletRigidBodyObject::updateBulletFromObject(), and updateObjectFromDeactivation().
bool Sirikata::BulletPhysicsService::directMotionRequestsEnabled | ( | const UUID & | uuid | ) |
References mLocations.
Referenced by locationUpdate(), and receiveMessage().
btDiscreteDynamicsWorld* Sirikata::BulletPhysicsService::dynamicsWorld | ( | ) | [inline] |
uint64 Sirikata::BulletPhysicsService::epoch | ( | const UUID & | uuid | ) | [virtual] |
Methods dealing with information requests.
Implements Sirikata::LocationService.
References Sirikata::SequencedPresenceProperties::maxSeqNo(), mLocations, and Sirikata::LocationInfo::props.
Referenced by locationUpdate(), and receiveMessage().
void Sirikata::BulletPhysicsService::getMesh | ( | const Transfer::URI | meshURI, |
const UUID | uuid, | ||
MeshdataParsedCallback | cb | ||
) |
void Sirikata::BulletPhysicsService::getMeshCallback | ( | Transfer::ResourceDownloadTaskPtr | taskptr, |
Transfer::TransferRequestPtr | request, | ||
Transfer::DenseDataPtr | response, | ||
MeshdataParsedCallback | cb | ||
) |
LocationInfo & Sirikata::BulletPhysicsService::info | ( | const UUID & | uuid | ) |
References mLocations.
Referenced by Sirikata::BulletRigidBodyObject::addRigidBody(), Sirikata::BulletRigidBodyObject::applyForcedLocation(), Sirikata::BulletCharacterObject::applyForcedLocation(), Sirikata::BulletRigidBodyObject::applyForcedOrientation(), Sirikata::BulletCharacterObject::applyForcedOrientation(), Sirikata::BulletObject::computeCollisionShape(), Sirikata::BulletCharacterObject::load(), Sirikata::BulletCharacterObject::postTick(), Sirikata::BulletCharacterObject::preTick(), and Sirikata::BulletRigidBodyObject::updateObjectFromBullet().
const LocationInfo & Sirikata::BulletPhysicsService::info | ( | const UUID & | uuid | ) | const |
References mLocations.
void Sirikata::BulletPhysicsService::internalTickCallback | ( | ) |
bool Sirikata::BulletPhysicsService::isFixed | ( | const UUID & | uuid | ) |
References mLocations.
Referenced by updateObjectFromDeactivation().
bool Sirikata::BulletPhysicsService::isLocal | ( | const UUID & | uuid | ) | const |
References mLocations.
Referenced by locationUpdate(), and receiveMessage().
bool Sirikata::BulletPhysicsService::isReplica | ( | const UUID & | uuid | ) | const [inline] |
TimedMotionVector3f Sirikata::BulletPhysicsService::location | ( | const UUID & | uuid | ) | [virtual] |
Implements Sirikata::LocationService.
References Sirikata::PresenceProperties::location(), mLocations, and Sirikata::LocationInfo::props.
Referenced by addLocalAggregateObject(), addLocalObject(), addReplicaObject(), currentPosition(), Sirikata::BulletCharacterObject::postTick(), and updateObjectFromDeactivation().
bool Sirikata::BulletPhysicsService::locationUpdate | ( | UUID | source, |
void * | buffer, | ||
uint32 | length | ||
) | [virtual] |
Implements Sirikata::LocationService.
References CONTEXT_SPACETRACE, directMotionRequestsEnabled(), epoch(), Sirikata::Logging::error, Sirikata::SpaceContext::id(), isLocal(), LOG_INVALID_MESSAGE_BUFFER, Sirikata::LocationService::mContext, mLocations, Sirikata::LocationService::notifyLocalBoundsUpdated(), Sirikata::LocationService::notifyLocalLocationUpdated(), Sirikata::LocationService::notifyLocalMeshUpdated(), Sirikata::LocationService::notifyLocalOrientationUpdated(), Sirikata::LocationService::notifyLocalPhysicsUpdated(), Sirikata::UUID::toString(), and updatePhysicsWorld().
const String & Sirikata::BulletPhysicsService::mesh | ( | const UUID & | uuid | ) | [virtual] |
Implements Sirikata::LocationService.
References Sirikata::LocationInfo::mesh_copied_str, and mLocations.
Referenced by addLocalAggregateObject(), addLocalObject(), addReplicaObject(), and getMeshCallback().
TimedMotionQuaternion Sirikata::BulletPhysicsService::orientation | ( | const UUID & | uuid | ) | [virtual] |
Implements Sirikata::LocationService.
References mLocations, Sirikata::PresenceProperties::orientation(), and Sirikata::LocationInfo::props.
Referenced by addLocalAggregateObject(), addLocalObject(), addReplicaObject(), currentOrientation(), Sirikata::BulletCharacterObject::postTick(), and updateObjectFromDeactivation().
const String & Sirikata::BulletPhysicsService::physics | ( | const UUID & | uuid | ) | [virtual] |
Implements Sirikata::LocationService.
References mLocations, and Sirikata::LocationInfo::physics_copied_str.
Referenced by addLocalAggregateObject(), addLocalObject(), and addReplicaObject().
void Sirikata::BulletPhysicsService::receiveMessage | ( | Message * | msg | ) | [virtual] |
MessageRecipient Interface.
Implements Sirikata::LocationService.
References contains(), CONTEXT_SPACETRACE, Sirikata::Message::dest_port(), directMotionRequestsEnabled(), epoch(), Sirikata::SpaceContext::id(), isLocal(), Sirikata::LocationService::mContext, mLocations, Sirikata::LocationService::notifyOnLocationUpdateFromServer(), Sirikata::LocationService::notifyReplicaBoundsUpdated(), Sirikata::LocationService::notifyReplicaLocationUpdated(), Sirikata::LocationService::notifyReplicaMeshUpdated(), Sirikata::LocationService::notifyReplicaOrientationUpdated(), Sirikata::LocationService::notifyReplicaPhysicsUpdated(), Sirikata::parsePBJMessage(), Sirikata::Message::payload(), SERVER_PORT_LOCATION, Sirikata::Message::source_server(), and updatePhysicsWorld().
void Sirikata::BulletPhysicsService::removeDeactivateableObject | ( | const UUID & | uuid | ) |
References mDeactivateableObjects.
Referenced by Sirikata::BulletRigidBodyObject::removeRigidBody(), and Sirikata::BulletCharacterObject::unload().
void Sirikata::BulletPhysicsService::removeInternalTickObject | ( | const UUID & | uuid | ) |
References mInternalTickObjects.
Referenced by Sirikata::BulletRigidBodyObject::removeRigidBody().
void Sirikata::BulletPhysicsService::removeLocalAggregateObject | ( | const UUID & | uuid | ) | [virtual] |
Implements Sirikata::LocationService.
References cleanupLocationInfo(), mLocations, and Sirikata::LocationService::notifyLocalObjectRemoved().
void Sirikata::BulletPhysicsService::removeLocalObject | ( | const UUID & | uuid | ) | [virtual] |
void Sirikata::BulletPhysicsService::removeTickObject | ( | const UUID & | uuid | ) |
References mTickObjects.
Referenced by Sirikata::BulletCharacterObject::unload().
void Sirikata::BulletPhysicsService::service | ( | ) | [virtual] |
Implements Sirikata::LocationService.
References Sirikata::BulletObject::deactivationTick(), Sirikata::LocationService::mContext, mDeactivateableObjects, mDynamicsWorld, mLastDeactivationTime, mLastTime, mLocations, mTickObjects, mUpdateIteration, Sirikata::LocationService::mUpdatePolicy, Sirikata::LocationService::notifyLocalLocationUpdated(), physicsUpdates, Sirikata::BulletObject::postTick(), Sirikata::BulletObject::preTick(), Sirikata::LocationUpdatePolicy::service(), Sirikata::LocationInfo::simObject, and Sirikata::Context::simTime().
void Sirikata::BulletPhysicsService::setLocation | ( | const UUID & | uuid, |
const TimedMotionVector3f & | newloc | ||
) |
References mLocations, Sirikata::LocationService::notifyLocalLocationUpdated(), Sirikata::LocationInfo::props, and Sirikata::SequencedPresenceProperties::setLocation().
Referenced by Sirikata::BulletCharacterObject::postTick(), Sirikata::BulletRigidBodyObject::updateObjectFromBullet(), and updateObjectFromDeactivation().
void Sirikata::BulletPhysicsService::setOrientation | ( | const UUID & | uuid, |
const TimedMotionQuaternion & | neworient | ||
) |
References mLocations, Sirikata::LocationService::notifyLocalOrientationUpdated(), Sirikata::LocationInfo::props, and Sirikata::SequencedPresenceProperties::setOrientation().
Referenced by Sirikata::BulletCharacterObject::postTick(), Sirikata::BulletRigidBodyObject::updateObjectFromBullet(), and updateObjectFromDeactivation().
void Sirikata::BulletPhysicsService::updateLocalAggregateBounds | ( | const UUID & | uuid, |
const AggregateBoundingInfo & | newval | ||
) | [virtual] |
Implements Sirikata::LocationService.
References mLocations, Sirikata::LocationService::notifyLocalBoundsUpdated(), and updatePhysicsWorld().
void Sirikata::BulletPhysicsService::updateLocalAggregateLocation | ( | const UUID & | uuid, |
const TimedMotionVector3f & | newval | ||
) | [virtual] |
Implements Sirikata::LocationService.
References mLocations, and Sirikata::LocationService::notifyLocalLocationUpdated().
void Sirikata::BulletPhysicsService::updateLocalAggregateMesh | ( | const UUID & | uuid, |
const String & | newval | ||
) | [virtual] |
Implements Sirikata::LocationService.
References mLocations, Sirikata::LocationService::notifyLocalMeshUpdated(), and updatePhysicsWorld().
void Sirikata::BulletPhysicsService::updateLocalAggregateOrientation | ( | const UUID & | uuid, |
const TimedMotionQuaternion & | newval | ||
) | [virtual] |
Implements Sirikata::LocationService.
References mLocations, and Sirikata::LocationService::notifyLocalOrientationUpdated().
void Sirikata::BulletPhysicsService::updateLocalAggregatePhysics | ( | const UUID & | uuid, |
const String & | newval | ||
) | [virtual] |
Implements Sirikata::LocationService.
References mLocations, Sirikata::LocationService::notifyLocalPhysicsUpdated(), and updatePhysicsWorld().
void Sirikata::BulletPhysicsService::updateObjectFromDeactivation | ( | const UUID & | uuid | ) |
References BULLETLOG, Sirikata::LocationService::context(), currentOrientation(), currentPosition(), Sirikata::Quaternion::identity(), Sirikata::Logging::insane, isFixed(), location(), orientation(), physicsUpdates, setLocation(), setOrientation(), Sirikata::Context::simTime(), and Sirikata::UUID::toString().
Referenced by Sirikata::BulletRigidBodyObject::deactivationTick(), and Sirikata::BulletCharacterObject::deactivationTick().
void Sirikata::BulletPhysicsService::updatePhysicsWorld | ( | const UUID & | uuid | ) | [private] |
References Sirikata::BulletObject::bbox(), Sirikata::BULLET_OBJECT_BOUNDS_ENTIRE_OBJECT, Sirikata::BULLET_OBJECT_BOUNDS_PER_TRIANGLE, Sirikata::BULLET_OBJECT_BOUNDS_SPHERE, Sirikata::BULLET_OBJECT_TREATMENT_CHARACTER, Sirikata::BULLET_OBJECT_TREATMENT_DYNAMIC, Sirikata::BULLET_OBJECT_TREATMENT_IGNORE, Sirikata::BULLET_OBJECT_TREATMENT_LINEAR_DYNAMIC, Sirikata::BULLET_OBJECT_TREATMENT_STATIC, Sirikata::BULLET_OBJECT_TREATMENT_VERTICAL_DYNAMIC, BULLETLOG, DEFAULT_BOUNDS, DEFAULT_MASS, DEFAULT_TREATMENT, Sirikata::Logging::detailed, Sirikata::Logging::error, getMesh(), Sirikata::PresenceProperties::mesh(), mLocations, Sirikata::PresenceProperties::physics(), Sirikata::LocationInfo::props, Sirikata::LocationInfo::simObject, Sirikata::BulletObject::unload(), and updatePhysicsWorldWithMesh().
Referenced by addLocalAggregateObject(), addLocalObject(), addReplicaObject(), locationUpdate(), receiveMessage(), updateLocalAggregateBounds(), updateLocalAggregateMesh(), and updateLocalAggregatePhysics().
void Sirikata::BulletPhysicsService::updatePhysicsWorldWithMesh | ( | const UUID & | uuid, |
MeshdataPtr | retrievedMesh | ||
) | [private] |
References Sirikata::BulletObject::load(), mLocations, and Sirikata::LocationInfo::simObject.
Referenced by updatePhysicsWorld().
btDefaultCollisionConfiguration* Sirikata::BulletPhysicsService::collisionConfiguration [private] |
Referenced by BulletPhysicsService(), and ~BulletPhysicsService().
btCollisionDispatcher* Sirikata::BulletPhysicsService::dispatcher [private] |
Referenced by BulletPhysicsService(), and ~BulletPhysicsService().
btBroadphaseInterface* Sirikata::BulletPhysicsService::mBroadphase [private] |
Referenced by BulletPhysicsService(), and ~BulletPhysicsService().
Referenced by addDeactivateableObject(), removeDeactivateableObject(), and service().
btDiscreteDynamicsWorld* Sirikata::BulletPhysicsService::mDynamicsWorld [private] |
Referenced by BulletPhysicsService(), service(), and ~BulletPhysicsService().
Referenced by addInternalTickObject(), internalTickCallback(), and removeInternalTickObject().
Referenced by BulletPhysicsService(), and service().
Referenced by BulletPhysicsService(), and service().
Referenced by addLocalAggregateObject(), addLocalObject(), addReplicaObject(), bounds(), commandObjectProperties(), commandProperties(), contains(), directMotionRequestsEnabled(), epoch(), info(), internalTickCallback(), isFixed(), isLocal(), location(), locationUpdate(), mesh(), orientation(), physics(), receiveMessage(), removeLocalAggregateObject(), removeLocalObject(), removeReplicaObject(), service(), setLocation(), setOrientation(), updateLocalAggregateBounds(), updateLocalAggregateLocation(), updateLocalAggregateMesh(), updateLocalAggregateOrientation(), updateLocalAggregatePhysics(), updatePhysicsWorld(), updatePhysicsWorldWithMesh(), and ~BulletPhysicsService().
Referenced by getMesh().
Referenced by BulletPhysicsService(), getMeshCallback(), and ~BulletPhysicsService().
Referenced by BulletPhysicsService(), getMeshCallback(), and ~BulletPhysicsService().
Referenced by getMesh(), and ~BulletPhysicsService().
UUIDSet Sirikata::BulletPhysicsService::mTickObjects [protected] |
Referenced by addTickObject(), removeTickObject(), and service().
Referenced by BulletPhysicsService().
Referenced by BulletPhysicsService(), and getMesh().
uint32 Sirikata::BulletPhysicsService::mUpdateIteration [protected] |
Referenced by service().
Referenced by addUpdate(), service(), and updateObjectFromDeactivation().
btSequentialImpulseConstraintSolver* Sirikata::BulletPhysicsService::solver [private] |
Referenced by BulletPhysicsService(), and ~BulletPhysicsService().