From 2c701c8e6928cb5a6e10cf6a801878a396f0182f Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Fri, 22 Mar 2013 10:36:19 -0700 Subject: [PATCH] add VoxelAgentData class for VS to hold position and level data for clients --- voxel/src/VoxelAgentData.cpp | 33 +++++++++++++++++++++++++++++++++ voxel/src/VoxelAgentData.h | 28 ++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 voxel/src/VoxelAgentData.cpp create mode 100644 voxel/src/VoxelAgentData.h diff --git a/voxel/src/VoxelAgentData.cpp b/voxel/src/VoxelAgentData.cpp new file mode 100644 index 0000000000..0bd5345973 --- /dev/null +++ b/voxel/src/VoxelAgentData.cpp @@ -0,0 +1,33 @@ +// +// VoxelAgentData.cpp +// hifi +// +// Created by Stephen Birarda on 3/21/13. +// +// + +#include "VoxelAgentData.h" + +VoxelAgentData::VoxelAgentData() { + lastSeenLevel = 0; +} + +VoxelAgentData::~VoxelAgentData() { + // nothing to explicitly destroy here +} + +VoxelAgentData::VoxelAgentData(const VoxelAgentData &otherAgentData) { + lastSeenLevel = otherAgentData.lastSeenLevel; + memcpy(position, otherAgentData.position, sizeof(float) * 3); +} + +VoxelAgentData* VoxelAgentData::clone() const { + return new VoxelAgentData(*this); +} + +void VoxelAgentData::parseData(void *data, int size) { + // pull the position from the interface agent data packet + sscanf((char *)data, + "H%*f,%*f,%*f,%f,%f,%f", + &position[0], &position[1], &position[2]); +} diff --git a/voxel/src/VoxelAgentData.h b/voxel/src/VoxelAgentData.h new file mode 100644 index 0000000000..64e8230c84 --- /dev/null +++ b/voxel/src/VoxelAgentData.h @@ -0,0 +1,28 @@ +// +// VoxelAgentData.h +// hifi +// +// Created by Stephen Birarda on 3/21/13. +// +// + +#ifndef __hifi__VoxelAgentData__ +#define __hifi__VoxelAgentData__ + +#include +#include + +class VoxelAgentData : public AgentData { +public: + float position[3]; + int lastSeenLevel; + + VoxelAgentData(); + ~VoxelAgentData(); + VoxelAgentData(const VoxelAgentData &otherAgentData); + + void parseData(void *data, int size); + VoxelAgentData* clone() const; +}; + +#endif /* defined(__hifi__VoxelAgentData__) */