From 5bd398931fe0662b7eb032581094c7a5dc5ed13e Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Tue, 26 Mar 2013 12:47:21 -0700 Subject: [PATCH 1/6] remove voxel sending from voxel main loop --- voxel/src/main.cpp | 35 +---------------------------------- 1 file changed, 1 insertion(+), 34 deletions(-) diff --git a/voxel/src/main.cpp b/voxel/src/main.cpp index 28cf559322..9dcb8d6182 100644 --- a/voxel/src/main.cpp +++ b/voxel/src/main.cpp @@ -144,41 +144,8 @@ int main(int argc, const char * argv[]) agentList.increaseAgentId(); } + // parse this agent's position agentList.updateAgentWithData(&agentPublicAddress, (void *)packetData, receivedBytes); - - VoxelAgentData *agentData = (VoxelAgentData *) agentList.getAgents()[agentList.indexOfMatchingAgent(&agentPublicAddress)].getLinkedData(); - int newLevel = 10; - if (newLevel > agentData->lastSentLevel) { - // the agent has already received a deeper level than this from us - // do nothing - - stopOctal = randomTree.rootNode->octalCode; - packetCount = 0; - totalBytesSent = 0; - randomTree.leavesWrittenToBitstream = 0; - - while (stopOctal != NULL) { - voxelPacketEnd = voxelPacket; - stopOctal = randomTree.loadBitstreamBuffer(voxelPacketEnd, - stopOctal, - randomTree.rootNode, - newLevel); - - agentList.getAgentSocket().send((sockaddr *)&agentPublicAddress, - voxelPacket, - voxelPacketEnd - voxelPacket); - - packetCount++; - totalBytesSent += voxelPacketEnd - voxelPacket; - } - - printf("%d packets sent to client totalling %d bytes\n", packetCount, totalBytesSent); - printf("%d leaves were sent - %f bpv\n", - randomTree.leavesWrittenToBitstream, - (float)totalBytesSent / randomTree.leavesWrittenToBitstream); - - agentData->lastSentLevel = newLevel; - } } } } From 761db13e90483ccce07cd43241eeb98046dfdf1a Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Tue, 26 Mar 2013 14:06:34 -0700 Subject: [PATCH 2/6] add the MarkerNode class to maintain markers during tree traversal --- voxel/src/MarkerNode.cpp | 9 +++++++++ voxel/src/MarkerNode.h | 14 ++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 voxel/src/MarkerNode.cpp create mode 100644 voxel/src/MarkerNode.h diff --git a/voxel/src/MarkerNode.cpp b/voxel/src/MarkerNode.cpp new file mode 100644 index 0000000000..0f85baf7e9 --- /dev/null +++ b/voxel/src/MarkerNode.cpp @@ -0,0 +1,9 @@ +// +// MarkerNode.cpp +// hifi +// +// Created by Stephen Birarda on 3/26/13. +// +// + +#include "MarkerNode.h" diff --git a/voxel/src/MarkerNode.h b/voxel/src/MarkerNode.h new file mode 100644 index 0000000000..829d7c4959 --- /dev/null +++ b/voxel/src/MarkerNode.h @@ -0,0 +1,14 @@ +// +// MarkerNode.h +// hifi +// +// Created by Stephen Birarda on 3/26/13. +// +// + +#ifndef __hifi__MarkerNode__ +#define __hifi__MarkerNode__ + +#include + +#endif /* defined(__hifi__MarkerNode__) */ From 1c9d4de0d6ee7636e8024fb76cb53f58b19e2d95 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Tue, 26 Mar 2013 14:06:52 -0700 Subject: [PATCH 3/6] hook up VoxelAgentData to new MarkerNode class --- voxel/src/VoxelAgentData.cpp | 4 +++- voxel/src/VoxelAgentData.h | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/voxel/src/VoxelAgentData.cpp b/voxel/src/VoxelAgentData.cpp index 634b234b49..98311fdbac 100644 --- a/voxel/src/VoxelAgentData.cpp +++ b/voxel/src/VoxelAgentData.cpp @@ -12,15 +12,17 @@ VoxelAgentData::VoxelAgentData() { lastSentLevel = 0; + rootMarkerNode = new MarkerNode(); } VoxelAgentData::~VoxelAgentData() { - // nothing to explicitly destroy here + delete rootMarkerNode; } VoxelAgentData::VoxelAgentData(const VoxelAgentData &otherAgentData) { lastSentLevel = otherAgentData.lastSentLevel; memcpy(position, otherAgentData.position, sizeof(float) * 3); + rootMarkerNode = new MarkerNode(*otherAgentData.rootMarkerNode); } VoxelAgentData* VoxelAgentData::clone() const { diff --git a/voxel/src/VoxelAgentData.h b/voxel/src/VoxelAgentData.h index 6d66d06013..21b521126d 100644 --- a/voxel/src/VoxelAgentData.h +++ b/voxel/src/VoxelAgentData.h @@ -9,13 +9,15 @@ #ifndef __hifi__VoxelAgentData__ #define __hifi__VoxelAgentData__ -#include #include +#include +#include "MarkerNode.h" class VoxelAgentData : public AgentData { public: float position[3]; int lastSentLevel; + MarkerNode *rootMarkerNode; VoxelAgentData(); ~VoxelAgentData(); From a6333122e6ed86feefbf0227e391a78eeacc228f Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Tue, 26 Mar 2013 14:07:35 -0700 Subject: [PATCH 4/6] build out MarkerNode class --- voxel/src/MarkerNode.cpp | 25 +++++++++++++++++++++++++ voxel/src/MarkerNode.h | 10 ++++++++++ 2 files changed, 35 insertions(+) diff --git a/voxel/src/MarkerNode.cpp b/voxel/src/MarkerNode.cpp index 0f85baf7e9..be2a5c066f 100644 --- a/voxel/src/MarkerNode.cpp +++ b/voxel/src/MarkerNode.cpp @@ -7,3 +7,28 @@ // #include "MarkerNode.h" + +MarkerNode::MarkerNode() { + for (int i = 0; i < 8; i++) { + children[i] = NULL; + } + + visitedMask = 0; +} + +MarkerNode::~MarkerNode() { + for (int i = 0; i < 8; i++) { + delete children[i]; + } +} + +MarkerNode::MarkerNode(const MarkerNode &otherMarkerNode) { + visitedMask = otherMarkerNode.visitedMask; + + // recursively copy the children marker nodes + for (int i = 0; i < 8; i++) { + if (children[i] != NULL) { + children[i] = new MarkerNode(*otherMarkerNode.children[i]); + } + } +} \ No newline at end of file diff --git a/voxel/src/MarkerNode.h b/voxel/src/MarkerNode.h index 829d7c4959..ae40b75751 100644 --- a/voxel/src/MarkerNode.h +++ b/voxel/src/MarkerNode.h @@ -11,4 +11,14 @@ #include +class MarkerNode { +public: + MarkerNode(); + ~MarkerNode(); + MarkerNode(const MarkerNode &otherMarkerNode); + + unsigned char childrenVisitedMask; + MarkerNode *children[8]; +}; + #endif /* defined(__hifi__MarkerNode__) */ From bbb0e9cea3e002b314b019e215e51ba755b4594c Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Tue, 26 Mar 2013 14:10:06 -0700 Subject: [PATCH 5/6] move MarkerNode to shared to hook with VoxelTree --- {voxel => shared}/src/MarkerNode.cpp | 0 {voxel => shared}/src/MarkerNode.h | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename {voxel => shared}/src/MarkerNode.cpp (100%) rename {voxel => shared}/src/MarkerNode.h (100%) diff --git a/voxel/src/MarkerNode.cpp b/shared/src/MarkerNode.cpp similarity index 100% rename from voxel/src/MarkerNode.cpp rename to shared/src/MarkerNode.cpp diff --git a/voxel/src/MarkerNode.h b/shared/src/MarkerNode.h similarity index 100% rename from voxel/src/MarkerNode.h rename to shared/src/MarkerNode.h From 7c1470c07e1b8d8580f046bd6f8318f2e5f3faf4 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Tue, 26 Mar 2013 16:22:42 -0700 Subject: [PATCH 6/6] remove debug send to 10.0.0.10 --- interface/src/main.cpp | 5 ----- 1 file changed, 5 deletions(-) diff --git a/interface/src/main.cpp b/interface/src/main.cpp index 3e66775bc1..2cd1a8ce32 100644 --- a/interface/src/main.cpp +++ b/interface/src/main.cpp @@ -320,11 +320,6 @@ void init(void) myHead.setNoise(noise); } - char output[] = "I"; - char address[] = "10.0.0.10"; - agentList.getAgentSocket().send(address, 40106, output, 1); - - #ifdef MARKER_CAPTURE if(marker_capture_enabled){ marker_capturer.position_updated(&position_updated);