mirror of
https://github.com/overte-org/overte.git
synced 2025-04-21 08:04:01 +02:00
Merge remote-tracking branch 'origin'
This commit is contained in:
commit
ef9c704bb1
6 changed files with 65 additions and 41 deletions
|
@ -316,11 +316,6 @@ void init(void)
|
|||
}
|
||||
myHead.setPos(start_location);
|
||||
|
||||
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);
|
||||
|
|
34
shared/src/MarkerNode.cpp
Normal file
34
shared/src/MarkerNode.cpp
Normal file
|
@ -0,0 +1,34 @@
|
|||
//
|
||||
// MarkerNode.cpp
|
||||
// hifi
|
||||
//
|
||||
// Created by Stephen Birarda on 3/26/13.
|
||||
//
|
||||
//
|
||||
|
||||
#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]);
|
||||
}
|
||||
}
|
||||
}
|
24
shared/src/MarkerNode.h
Normal file
24
shared/src/MarkerNode.h
Normal file
|
@ -0,0 +1,24 @@
|
|||
//
|
||||
// MarkerNode.h
|
||||
// hifi
|
||||
//
|
||||
// Created by Stephen Birarda on 3/26/13.
|
||||
//
|
||||
//
|
||||
|
||||
#ifndef __hifi__MarkerNode__
|
||||
#define __hifi__MarkerNode__
|
||||
|
||||
#include <iostream>
|
||||
|
||||
class MarkerNode {
|
||||
public:
|
||||
MarkerNode();
|
||||
~MarkerNode();
|
||||
MarkerNode(const MarkerNode &otherMarkerNode);
|
||||
|
||||
unsigned char childrenVisitedMask;
|
||||
MarkerNode *children[8];
|
||||
};
|
||||
|
||||
#endif /* defined(__hifi__MarkerNode__) */
|
|
@ -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 {
|
||||
|
|
|
@ -9,13 +9,15 @@
|
|||
#ifndef __hifi__VoxelAgentData__
|
||||
#define __hifi__VoxelAgentData__
|
||||
|
||||
#include <AgentData.h>
|
||||
#include <iostream>
|
||||
#include <AgentData.h>
|
||||
#include "MarkerNode.h"
|
||||
|
||||
class VoxelAgentData : public AgentData {
|
||||
public:
|
||||
float position[3];
|
||||
int lastSentLevel;
|
||||
MarkerNode *rootMarkerNode;
|
||||
|
||||
VoxelAgentData();
|
||||
~VoxelAgentData();
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue