rename nodeBag to elementBag in a bunch of places

This commit is contained in:
ZappoMan 2014-06-09 13:42:44 -07:00
parent 89e24c4f21
commit 6f1ec01797
5 changed files with 38 additions and 37 deletions

View file

@ -57,7 +57,7 @@ OctreeQueryNode::~OctreeQueryNode() {
void OctreeQueryNode::nodeKilled() { void OctreeQueryNode::nodeKilled() {
_isShuttingDown = true; _isShuttingDown = true;
nodeBag.unhookNotifications(); // if our node is shutting down, then we no longer need octree element notifications elementBag.unhookNotifications(); // if our node is shutting down, then we no longer need octree element notifications
if (_octreeSendThread) { if (_octreeSendThread) {
// just tell our thread we want to shutdown, this is asynchronous, and fast, we don't need or want it to block // just tell our thread we want to shutdown, this is asynchronous, and fast, we don't need or want it to block
// while the thread actually shuts down // while the thread actually shuts down
@ -67,7 +67,7 @@ void OctreeQueryNode::nodeKilled() {
void OctreeQueryNode::forceNodeShutdown() { void OctreeQueryNode::forceNodeShutdown() {
_isShuttingDown = true; _isShuttingDown = true;
nodeBag.unhookNotifications(); // if our node is shutting down, then we no longer need octree element notifications elementBag.unhookNotifications(); // if our node is shutting down, then we no longer need octree element notifications
if (_octreeSendThread) { if (_octreeSendThread) {
// we really need to force our thread to shutdown, this is synchronous, we will block while the thread actually // we really need to force our thread to shutdown, this is synchronous, we will block while the thread actually
// shuts down because we really need it to shutdown, and it's ok if we wait for it to complete // shuts down because we really need it to shutdown, and it's ok if we wait for it to complete
@ -344,8 +344,8 @@ void OctreeQueryNode::dumpOutOfView() {
int stillInView = 0; int stillInView = 0;
int outOfView = 0; int outOfView = 0;
OctreeElementBag tempBag; OctreeElementBag tempBag;
while (!nodeBag.isEmpty()) { while (!elementBag.isEmpty()) {
OctreeElement* node = nodeBag.extract(); OctreeElement* node = elementBag.extract();
if (node->isInView(_currentViewFrustum)) { if (node->isInView(_currentViewFrustum)) {
tempBag.insert(node); tempBag.insert(node);
stillInView++; stillInView++;
@ -357,7 +357,7 @@ void OctreeQueryNode::dumpOutOfView() {
while (!tempBag.isEmpty()) { while (!tempBag.isEmpty()) {
OctreeElement* node = tempBag.extract(); OctreeElement* node = tempBag.extract();
if (node->isInView(_currentViewFrustum)) { if (node->isInView(_currentViewFrustum)) {
nodeBag.insert(node); elementBag.insert(node);
} }
} }
} }

View file

@ -54,7 +54,7 @@ public:
int getMaxLevelReached() const { return _maxLevelReachedInLastSearch; } int getMaxLevelReached() const { return _maxLevelReachedInLastSearch; }
void setMaxLevelReached(int maxLevelReached) { _maxLevelReachedInLastSearch = maxLevelReached; } void setMaxLevelReached(int maxLevelReached) { _maxLevelReachedInLastSearch = maxLevelReached; }
OctreeElementBag nodeBag; OctreeElementBag elementBag;
CoverageMap map; CoverageMap map;
ViewFrustum& getCurrentViewFrustum() { return _currentViewFrustum; } ViewFrustum& getCurrentViewFrustum() { return _currentViewFrustum; }

View file

@ -328,7 +328,7 @@ int OctreeSendThread::packetDistributor(OctreeQueryNode* nodeData, bool viewFrus
// If the current view frustum has changed OR we have nothing to send, then search against // If the current view frustum has changed OR we have nothing to send, then search against
// the current view frustum for things to send. // the current view frustum for things to send.
if (viewFrustumChanged || nodeData->nodeBag.isEmpty()) { if (viewFrustumChanged || nodeData->elementBag.isEmpty()) {
// if our view has changed, we need to reset these things... // if our view has changed, we need to reset these things...
if (viewFrustumChanged) { if (viewFrustumChanged) {
@ -357,9 +357,9 @@ int OctreeSendThread::packetDistributor(OctreeQueryNode* nodeData, bool viewFrus
int packetsJustSent = handlePacketSend(nodeData, trueBytesSent, truePacketsSent); int packetsJustSent = handlePacketSend(nodeData, trueBytesSent, truePacketsSent);
packetsSentThisInterval += packetsJustSent; packetsSentThisInterval += packetsJustSent;
// If we're starting a full scene, then definitely we want to empty the nodeBag // If we're starting a full scene, then definitely we want to empty the elementBag
if (isFullScene) { if (isFullScene) {
nodeData->nodeBag.deleteAll(); nodeData->elementBag.deleteAll();
} }
// TODO: add these to stats page // TODO: add these to stats page
@ -371,16 +371,16 @@ int OctreeSendThread::packetDistributor(OctreeQueryNode* nodeData, bool viewFrus
// This is the start of "resending" the scene. // This is the start of "resending" the scene.
bool dontRestartSceneOnMove = false; // this is experimental bool dontRestartSceneOnMove = false; // this is experimental
if (dontRestartSceneOnMove) { if (dontRestartSceneOnMove) {
if (nodeData->nodeBag.isEmpty()) { if (nodeData->elementBag.isEmpty()) {
nodeData->nodeBag.insert(_myServer->getOctree()->getRoot()); // only in case of empty nodeData->elementBag.insert(_myServer->getOctree()->getRoot()); // only in case of empty
} }
} else { } else {
nodeData->nodeBag.insert(_myServer->getOctree()->getRoot()); // original behavior, reset on move or empty nodeData->elementBag.insert(_myServer->getOctree()->getRoot()); // original behavior, reset on move or empty
} }
} }
// If we have something in our nodeBag, then turn them into packets and send them out... // If we have something in our elementBag, then turn them into packets and send them out...
if (!nodeData->nodeBag.isEmpty()) { if (!nodeData->elementBag.isEmpty()) {
int bytesWritten = 0; int bytesWritten = 0;
quint64 start = usecTimestampNow(); quint64 start = usecTimestampNow();
@ -402,8 +402,8 @@ int OctreeSendThread::packetDistributor(OctreeQueryNode* nodeData, bool viewFrus
quint64 startInside = usecTimestampNow(); quint64 startInside = usecTimestampNow();
bool lastNodeDidntFit = false; // assume each node fits bool lastNodeDidntFit = false; // assume each node fits
if (!nodeData->nodeBag.isEmpty()) { if (!nodeData->elementBag.isEmpty()) {
OctreeElement* subTree = nodeData->nodeBag.extract(); OctreeElement* subTree = nodeData->elementBag.extract();
/* TODO: Looking for a way to prevent locking and encoding a tree that is not /* TODO: Looking for a way to prevent locking and encoding a tree that is not
// going to result in any packets being sent... // going to result in any packets being sent...
@ -452,14 +452,14 @@ int OctreeSendThread::packetDistributor(OctreeQueryNode* nodeData, bool viewFrus
lockWaitElapsedUsec = (float)(lockWaitEnd - lockWaitStart); lockWaitElapsedUsec = (float)(lockWaitEnd - lockWaitStart);
quint64 encodeStart = usecTimestampNow(); quint64 encodeStart = usecTimestampNow();
bytesWritten = _myServer->getOctree()->encodeTreeBitstream(subTree, &_packetData, nodeData->nodeBag, params); bytesWritten = _myServer->getOctree()->encodeTreeBitstream(subTree, &_packetData, nodeData->elementBag, params);
quint64 encodeEnd = usecTimestampNow(); quint64 encodeEnd = usecTimestampNow();
encodeElapsedUsec = (float)(encodeEnd - encodeStart); encodeElapsedUsec = (float)(encodeEnd - encodeStart);
// If after calling encodeTreeBitstream() there are no nodes left to send, then we know we've // If after calling encodeTreeBitstream() there are no nodes left to send, then we know we've
// sent the entire scene. We want to know this below so we'll actually write this content into // sent the entire scene. We want to know this below so we'll actually write this content into
// the packet and send it // the packet and send it
completedScene = nodeData->nodeBag.isEmpty(); completedScene = nodeData->elementBag.isEmpty();
// if we're trying to fill a full size packet, then we use this logic to determine if we have a DIDNT_FIT case. // if we're trying to fill a full size packet, then we use this logic to determine if we have a DIDNT_FIT case.
if (_packetData.getTargetSize() == MAX_OCTREE_PACKET_DATA_SIZE) { if (_packetData.getTargetSize() == MAX_OCTREE_PACKET_DATA_SIZE) {
@ -580,7 +580,7 @@ int OctreeSendThread::packetDistributor(OctreeQueryNode* nodeData, bool viewFrus
// if after sending packets we've emptied our bag, then we want to remember that we've sent all // if after sending packets we've emptied our bag, then we want to remember that we've sent all
// the voxels from the current view frustum // the voxels from the current view frustum
if (nodeData->nodeBag.isEmpty()) { if (nodeData->elementBag.isEmpty()) {
nodeData->updateLastKnownViewFrustum(); nodeData->updateLastKnownViewFrustum();
nodeData->setViewSent(true); nodeData->setViewSent(true);
nodeData->map.erase(); // It would be nice if we could save this, and only reset it when the view frustum changes nodeData->map.erase(); // It would be nice if we could save this, and only reset it when the view frustum changes

View file

@ -361,7 +361,8 @@ bool ModelItem::new___appendModelData(OctreePacketData* packetData, EncodeBitstr
encodedPropertyFlags = propertyFlags; encodedPropertyFlags = propertyFlags;
int newPropertyFlagsLength = encodedPropertyFlags.length(); int newPropertyFlagsLength = encodedPropertyFlags.length();
packetData->updatePriorBytes(propertyFlagsOffset, (const unsigned char*)encodedPropertyFlags.constData(), encodedPropertyFlags.length()); packetData->updatePriorBytes(propertyFlagsOffset,
(const unsigned char*)encodedPropertyFlags.constData(), encodedPropertyFlags.length());
// if the size of the PropertyFlags shrunk, we need to shift everything down to front of packet. // if the size of the PropertyFlags shrunk, we need to shift everything down to front of packet.
if (newPropertyFlagsLength < oldPropertyFlagsLength) { if (newPropertyFlagsLength < oldPropertyFlagsLength) {

View file

@ -1649,23 +1649,23 @@ void Octree::writeToSVOFile(const char* fileName, OctreeElement* element) {
file.write(&expectedVersion, sizeof(expectedVersion)); file.write(&expectedVersion, sizeof(expectedVersion));
} }
OctreeElementBag nodeBag; OctreeElementBag elementBag;
// If we were given a specific element, start from there, otherwise start from root // If we were given a specific element, start from there, otherwise start from root
if (element) { if (element) {
nodeBag.insert(element); elementBag.insert(element);
} else { } else {
nodeBag.insert(_rootElement); elementBag.insert(_rootElement);
} }
OctreePacketData packetData; OctreePacketData packetData;
int bytesWritten = 0; int bytesWritten = 0;
bool lastPacketWritten = false; bool lastPacketWritten = false;
while (!nodeBag.isEmpty()) { while (!elementBag.isEmpty()) {
OctreeElement* subTree = nodeBag.extract(); OctreeElement* subTree = elementBag.extract();
lockForRead(); // do tree locking down here so that we have shorter slices and less thread contention lockForRead(); // do tree locking down here so that we have shorter slices and less thread contention
EncodeBitstreamParams params(INT_MAX, IGNORE_VIEW_FRUSTUM, WANT_COLOR, NO_EXISTS_BITS); EncodeBitstreamParams params(INT_MAX, IGNORE_VIEW_FRUSTUM, WANT_COLOR, NO_EXISTS_BITS);
bytesWritten = encodeTreeBitstream(subTree, &packetData, nodeBag, params); bytesWritten = encodeTreeBitstream(subTree, &packetData, elementBag, params);
unlock(); unlock();
// if the subTree couldn't fit, and so we should reset the packet and reinsert the element in our bag and try again // if the subTree couldn't fit, and so we should reset the packet and reinsert the element in our bag and try again
@ -1675,7 +1675,7 @@ void Octree::writeToSVOFile(const char* fileName, OctreeElement* element) {
lastPacketWritten = true; lastPacketWritten = true;
} }
packetData.reset(); // is there a better way to do this? could we fit more? packetData.reset(); // is there a better way to do this? could we fit more?
nodeBag.insert(subTree); elementBag.insert(subTree);
} else { } else {
lastPacketWritten = false; lastPacketWritten = false;
} }
@ -1700,8 +1700,8 @@ bool Octree::countOctreeElementsOperation(OctreeElement* element, void* extraDat
} }
void Octree::copySubTreeIntoNewTree(OctreeElement* startElement, Octree* destinationTree, bool rebaseToRoot) { void Octree::copySubTreeIntoNewTree(OctreeElement* startElement, Octree* destinationTree, bool rebaseToRoot) {
OctreeElementBag nodeBag; OctreeElementBag elementBag;
nodeBag.insert(startElement); elementBag.insert(startElement);
int chopLevels = 0; int chopLevels = 0;
if (rebaseToRoot) { if (rebaseToRoot) {
chopLevels = numberOfThreeBitSectionsInCode(startElement->getOctalCode()); chopLevels = numberOfThreeBitSectionsInCode(startElement->getOctalCode());
@ -1709,12 +1709,12 @@ void Octree::copySubTreeIntoNewTree(OctreeElement* startElement, Octree* destina
static OctreePacketData packetData; static OctreePacketData packetData;
while (!nodeBag.isEmpty()) { while (!elementBag.isEmpty()) {
OctreeElement* subTree = nodeBag.extract(); OctreeElement* subTree = elementBag.extract();
packetData.reset(); // reset the packet between usage packetData.reset(); // reset the packet between usage
// ask our tree to write a bitsteam // ask our tree to write a bitsteam
EncodeBitstreamParams params(INT_MAX, IGNORE_VIEW_FRUSTUM, WANT_COLOR, NO_EXISTS_BITS, chopLevels); EncodeBitstreamParams params(INT_MAX, IGNORE_VIEW_FRUSTUM, WANT_COLOR, NO_EXISTS_BITS, chopLevels);
encodeTreeBitstream(subTree, &packetData, nodeBag, params); encodeTreeBitstream(subTree, &packetData, elementBag, params);
// ask destination tree to read the bitstream // ask destination tree to read the bitstream
ReadBitstreamToTreeParams args(WANT_COLOR, NO_EXISTS_BITS); ReadBitstreamToTreeParams args(WANT_COLOR, NO_EXISTS_BITS);
destinationTree->readBitstreamToTree(packetData.getUncompressedData(), packetData.getUncompressedSize(), args); destinationTree->readBitstreamToTree(packetData.getUncompressedData(), packetData.getUncompressedSize(), args);
@ -1722,20 +1722,20 @@ void Octree::copySubTreeIntoNewTree(OctreeElement* startElement, Octree* destina
} }
void Octree::copyFromTreeIntoSubTree(Octree* sourceTree, OctreeElement* destinationElement) { void Octree::copyFromTreeIntoSubTree(Octree* sourceTree, OctreeElement* destinationElement) {
OctreeElementBag nodeBag; OctreeElementBag elementBag;
// If we were given a specific element, start from there, otherwise start from root // If we were given a specific element, start from there, otherwise start from root
nodeBag.insert(sourceTree->_rootElement); elementBag.insert(sourceTree->_rootElement);
static OctreePacketData packetData; static OctreePacketData packetData;
while (!nodeBag.isEmpty()) { while (!elementBag.isEmpty()) {
OctreeElement* subTree = nodeBag.extract(); OctreeElement* subTree = elementBag.extract();
packetData.reset(); // reset between usage packetData.reset(); // reset between usage
// ask our tree to write a bitsteam // ask our tree to write a bitsteam
EncodeBitstreamParams params(INT_MAX, IGNORE_VIEW_FRUSTUM, WANT_COLOR, NO_EXISTS_BITS); EncodeBitstreamParams params(INT_MAX, IGNORE_VIEW_FRUSTUM, WANT_COLOR, NO_EXISTS_BITS);
sourceTree->encodeTreeBitstream(subTree, &packetData, nodeBag, params); sourceTree->encodeTreeBitstream(subTree, &packetData, elementBag, params);
// ask destination tree to read the bitstream // ask destination tree to read the bitstream
bool wantImportProgress = true; bool wantImportProgress = true;