Sirikata
|
Uniform grid implementation of CoordinateSegmentation. More...
#include <UniformCoordinateSegmentation.hpp>
Public Member Functions | |
UniformCoordinateSegmentation (SpaceContext *ctx, const BoundingBox3f ®ion, const Vector3ui32 &perdim) | |
virtual | ~UniformCoordinateSegmentation () |
virtual ServerID | lookup (const Vector3f &pos) |
virtual BoundingBoxList | serverRegion (const ServerID &server) |
virtual BoundingBox3f | region () |
virtual uint32 | numServers () |
virtual std::vector< ServerID > | lookupBoundingBox (const BoundingBox3f &bbox) |
virtual void | receiveMessage (Message *msg) |
Private Member Functions | |
virtual void | service () |
Private Attributes | |
BoundingBox3f | mRegion |
Vector3ui32 | mServersPerDim |
std::vector< LayoutChangeEntry > | mLayoutChangeEntries |
uint32 | lastLayoutChangeIdx |
Uniform grid implementation of CoordinateSegmentation.
Sirikata::UniformCoordinateSegmentation::UniformCoordinateSegmentation | ( | SpaceContext * | ctx, |
const BoundingBox3f & | region, | ||
const Vector3ui32 & | perdim | ||
) |
References lastLayoutChangeIdx, Sirikata::LayoutChangeEntry::layout, Sirikata::CoordinateSegmentation::mContext, mLayoutChangeEntries, Sirikata::ServerMessageDispatcher::registerMessageRecipient(), SERVER_PORT_CSEG_CHANGE, Sirikata::SpaceContext::serverDispatcher(), and Sirikata::LayoutChangeEntry::time.
Sirikata::UniformCoordinateSegmentation::~UniformCoordinateSegmentation | ( | ) | [virtual] |
ServerID Sirikata::UniformCoordinateSegmentation::lookup | ( | const Vector3f & | pos | ) | [virtual] |
Implements Sirikata::CoordinateSegmentation.
References Sirikata::clamp(), mRegion, and mServersPerDim.
std::vector< ServerID > Sirikata::UniformCoordinateSegmentation::lookupBoundingBox | ( | const BoundingBox3f & | bbox | ) | [virtual] |
Implements Sirikata::CoordinateSegmentation.
References numServers(), and serverRegion().
uint32 Sirikata::UniformCoordinateSegmentation::numServers | ( | ) | [virtual] |
Implements Sirikata::CoordinateSegmentation.
References mServersPerDim.
Referenced by lookupBoundingBox(), and service().
void Sirikata::UniformCoordinateSegmentation::receiveMessage | ( | Message * | msg | ) | [virtual] |
Implements Sirikata::CoordinateSegmentation.
References Sirikata::Message::dest_port(), and SERVER_PORT_CSEG_CHANGE.
BoundingBox3f Sirikata::UniformCoordinateSegmentation::region | ( | ) | [virtual] |
Implements Sirikata::CoordinateSegmentation.
References mRegion.
BoundingBoxList Sirikata::UniformCoordinateSegmentation::serverRegion | ( | const ServerID & | server | ) | [virtual] |
Implements Sirikata::CoordinateSegmentation.
References mRegion, and mServersPerDim.
Referenced by lookupBoundingBox(), and service().
void Sirikata::UniformCoordinateSegmentation::service | ( | ) | [private, virtual] |
Implements Sirikata::CoordinateSegmentation.
References lastLayoutChangeIdx, Sirikata::LayoutChangeEntry::layout, Sirikata::CoordinateSegmentation::mContext, mLayoutChangeEntries, mServersPerDim, Sirikata::CoordinateSegmentation::notifyListeners(), numServers(), Sirikata::Time::raw(), serverRegion(), Sirikata::Context::simTime(), and Sirikata::LayoutChangeEntry::time.
uint32 Sirikata::UniformCoordinateSegmentation::lastLayoutChangeIdx [private] |
Referenced by service(), and UniformCoordinateSegmentation().
std::vector<LayoutChangeEntry> Sirikata::UniformCoordinateSegmentation::mLayoutChangeEntries [private] |
Referenced by service(), and UniformCoordinateSegmentation().
BoundingBox3f Sirikata::UniformCoordinateSegmentation::mRegion [private] |
Referenced by lookup(), region(), and serverRegion().
Vector3ui32 Sirikata::UniformCoordinateSegmentation::mServersPerDim [private] |
Referenced by lookup(), numServers(), serverRegion(), and service().