History

Initial code for AC side of Enabling Physics plan

When interface sets query flag send only entities close to main frustrum origin, until no more available, then send unreliabe sequence # reliably.

Simon Walton committed 8 years ago

Commit 47e99cd1 parent db8846712 files · +116 −16Browse files

Showing the changes to assignment-client/src/entities/EntityTreeSendThread.cpp (1 of 12 files). Show all

Unified · Split

assignment-client/src/entities/EntityTreeSendThread.cpp+9−0
@@ -17,6 +17,8 @@ · 16 unmodified lines
17 17
18#include "EntityServer.h"18#include "EntityServer.h"
19 19
20// Initially just send all items within this distance.
21const float EntityTreeSendThread::INITIAL_RADIUS = 50.0f;
20 22
21EntityTreeSendThread::EntityTreeSendThread(OctreeServer* myServer, const SharedNodePointer& node) :23EntityTreeSendThread::EntityTreeSendThread(OctreeServer* myServer, const SharedNodePointer& node) :
22 OctreeSendThread(myServer, node)24 OctreeSendThread(myServer, node)
@@ -112,6 +114,13 @@ void EntityTreeSendThread::traverseTreeAndSendContents(SharedNodePointer node, O · 89 unmodified lines
112 int32_t lodLevelOffset = nodeData->getBoundaryLevelAdjust() + (viewFrustumChanged ? LOW_RES_MOVING_ADJUST : NO_BOUNDARY_ADJUST);114 int32_t lodLevelOffset = nodeData->getBoundaryLevelAdjust() + (viewFrustumChanged ? LOW_RES_MOVING_ADJUST : NO_BOUNDARY_ADJUST);
113 newView.lodScaleFactor = powf(2.0f, lodLevelOffset);115 newView.lodScaleFactor = powf(2.0f, lodLevelOffset);
114 116
117 if (nodeData->wantReportInitialResult() && !newView.viewFrustums.empty()) {
118 auto& mainView = newView.viewFrustums[0];
119 // Force acceptance within INITIAL_RADIUS.
120 mainView.setSimpleRadius(INITIAL_RADIUS);
121 newView.lodScaleFactor = 0.0f;
122 }
123
115 startNewTraversal(newView, root);124 startNewTraversal(newView, root);
116 125
117 // When the viewFrustum changed the sort order may be incorrect, so we re-sort126 // When the viewFrustum changed the sort order may be incorrect, so we re-sort