diff --git a/assignment-client/src/avatars/AvatarMixer.cpp b/assignment-client/src/avatars/AvatarMixer.cpp index ab50a32ebe..64e93fd751 100644 --- a/assignment-client/src/avatars/AvatarMixer.cpp +++ b/assignment-client/src/avatars/AvatarMixer.cpp @@ -47,7 +47,7 @@ unsigned char* addNodeToBroadcastPacket(unsigned char *currentPosition, Node *no void attachAvatarDataToNode(Node* newNode) { if (newNode->getLinkedData() == NULL) { - newNode->setLinkedData(new AvatarData(newNode)); + newNode->setLinkedData(new AvatarData()); } } diff --git a/interface/src/VoxelSystem.cpp b/interface/src/VoxelSystem.cpp index b0d2a204bd..c5071570d5 100644 --- a/interface/src/VoxelSystem.cpp +++ b/interface/src/VoxelSystem.cpp @@ -57,7 +57,7 @@ GLubyte identityIndicesFront[] = { 0, 2, 1, 0, 3, 2 }; GLubyte identityIndicesBack[] = { 4, 5, 6, 4, 6, 7 }; VoxelSystem::VoxelSystem(float treeScale, int maxVoxels) - : NodeData(NULL), + : NodeData(), _treeScale(treeScale), _maxVoxels(maxVoxels), _initialized(false) { diff --git a/interface/src/avatar/Avatar.cpp b/interface/src/avatar/Avatar.cpp index 0ff7324633..7fe7458498 100644 --- a/interface/src/avatar/Avatar.cpp +++ b/interface/src/avatar/Avatar.cpp @@ -58,8 +58,8 @@ const int NUM_BODY_CONE_SIDES = 9; const float CHAT_MESSAGE_SCALE = 0.0015f; const float CHAT_MESSAGE_HEIGHT = 0.1f; -Avatar::Avatar(Node* owningNode) : - AvatarData(owningNode), +Avatar::Avatar() : + AvatarData(), _head(this), _hand(this), _skeletonModel(this), diff --git a/interface/src/avatar/Avatar.h b/interface/src/avatar/Avatar.h index 9b0dc54571..d7cd157af7 100755 --- a/interface/src/avatar/Avatar.h +++ b/interface/src/avatar/Avatar.h @@ -69,9 +69,7 @@ class Avatar : public AvatarData { Q_OBJECT public: - - Avatar(Node* owningNode = NULL); - ~Avatar(); + Avatar(); void init(); void simulate(float deltaTime, Transmitter* transmitter); @@ -109,6 +107,8 @@ public: /// \param collision[out] the details of the collision point /// \return whether or not the sphere collided virtual bool findSphereCollision(const glm::vec3& sphereCenter, float sphereRadius, CollisionInfo& collision); + + virtual bool isMyAvatar() { return false; } int parseData(unsigned char* sourceBuffer, int numBytes); diff --git a/interface/src/avatar/AvatarManager.cpp b/interface/src/avatar/AvatarManager.cpp index 2d5d36e2ab..b381efd24d 100644 --- a/interface/src/avatar/AvatarManager.cpp +++ b/interface/src/avatar/AvatarManager.cpp @@ -203,6 +203,7 @@ void AvatarManager::processKillAvatar(const QByteArray& datagram) { } void AvatarManager::clearHash() { + qDebug() << "clear the hash!"; // clear the AvatarManager hash - typically happens on the removal of the avatar-mixer _avatarHash.clear(); } \ No newline at end of file diff --git a/interface/src/avatar/Hand.cpp b/interface/src/avatar/Hand.cpp index 7183fc52c8..18d6031f98 100644 --- a/interface/src/avatar/Hand.cpp +++ b/interface/src/avatar/Hand.cpp @@ -43,7 +43,7 @@ Hand::Hand(Avatar* owningAvatar) : void Hand::init() { // Different colors for my hand and others' hands - if (_owningAvatar && _owningAvatar->getOwningNode() == NULL) { + if (_owningAvatar && _owningAvatar->isMyAvatar()) { _ballColor = glm::vec3(0.0, 0.4, 0.0); } else { @@ -54,8 +54,6 @@ void Hand::init() { void Hand::reset() { } - - glm::vec3 Hand::getAndResetGrabDelta() { const float HAND_GRAB_SCALE_DISTANCE = 2.f; glm::vec3 delta = _grabDelta * _owningAvatar->getScale() * HAND_GRAB_SCALE_DISTANCE; diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index a287cd8e14..ca7a3b863b 100644 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -37,8 +37,8 @@ const bool USING_HEAD_LEAN = false; const float SKIN_COLOR[] = {1.0f, 0.84f, 0.66f}; const float DARK_SKIN_COLOR[] = {0.9f, 0.78f, 0.63f}; -MyAvatar::MyAvatar(Node* owningNode) : - Avatar(owningNode), +MyAvatar::MyAvatar() : + Avatar(), _mousePressed(false), _bodyPitchDelta(0.0f), _bodyRollDelta(0.0f), diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index 8d6d93e4ae..92afe530eb 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -24,7 +24,7 @@ enum AvatarHandState class MyAvatar : public Avatar { public: - MyAvatar(Node* owningNode = NULL); + MyAvatar(); void reset(); void simulate(float deltaTime, Transmitter* transmitter); @@ -63,6 +63,8 @@ public: bool getDriveKeys(int key) { return _driveKeys[key]; }; void jump() { _shouldJump = true; }; + bool isMyAvatar() { return true; } + static void sendKillAvatar(); // Set/Get update the thrust that will move the avatar around diff --git a/libraries/audio/src/AudioRingBuffer.cpp b/libraries/audio/src/AudioRingBuffer.cpp index c471c896a4..e65d4632f6 100644 --- a/libraries/audio/src/AudioRingBuffer.cpp +++ b/libraries/audio/src/AudioRingBuffer.cpp @@ -16,7 +16,7 @@ #include "AudioRingBuffer.h" AudioRingBuffer::AudioRingBuffer(int numFrameSamples) : - NodeData(NULL), + NodeData(), _sampleCapacity(numFrameSamples * RING_BUFFER_LENGTH_FRAMES), _isStarved(true), _hasStarted(false) diff --git a/libraries/avatars/src/AvatarData.cpp b/libraries/avatars/src/AvatarData.cpp index 1ae44bb57a..8f548869ec 100644 --- a/libraries/avatars/src/AvatarData.cpp +++ b/libraries/avatars/src/AvatarData.cpp @@ -22,8 +22,8 @@ using namespace std; static const float fingerVectorRadix = 4; // bits of precision when converting from float<->fixed -AvatarData::AvatarData(Node* owningNode) : - NodeData(owningNode), +AvatarData::AvatarData() : + NodeData(), _handPosition(0,0,0), _bodyYaw(-90.0), _bodyPitch(0.0), diff --git a/libraries/avatars/src/AvatarData.h b/libraries/avatars/src/AvatarData.h index ac0d198fc9..fc9bad7f02 100755 --- a/libraries/avatars/src/AvatarData.h +++ b/libraries/avatars/src/AvatarData.h @@ -70,7 +70,7 @@ class AvatarData : public NodeData { Q_PROPERTY(float bodyRoll READ getBodyRoll WRITE setBodyRoll) Q_PROPERTY(QString chatMessage READ getQStringChatMessage WRITE setChatMessage) public: - AvatarData(Node* owningNode = NULL); + AvatarData(); ~AvatarData(); const glm::vec3& getPosition() const { return _position; } diff --git a/libraries/octree-server/src/OctreeQueryNode.cpp b/libraries/octree-server/src/OctreeQueryNode.cpp index a932266d7d..f220180980 100644 --- a/libraries/octree-server/src/OctreeQueryNode.cpp +++ b/libraries/octree-server/src/OctreeQueryNode.cpp @@ -13,8 +13,7 @@ #include #include "OctreeSendThread.h" -OctreeQueryNode::OctreeQueryNode(Node* owningNode) : - OctreeQuery(owningNode), +OctreeQueryNode::OctreeQueryNode() : _viewSent(false), _octreePacketAvailableBytes(MAX_PACKET_SIZE), _maxSearchLevel(1), @@ -38,9 +37,8 @@ OctreeQueryNode::OctreeQueryNode(Node* owningNode) : _sequenceNumber = 0; } -void OctreeQueryNode::initializeOctreeSendThread(OctreeServer* octreeServer) { +void OctreeQueryNode::initializeOctreeSendThread(OctreeServer* octreeServer, const QUuid& nodeUUID) { // Create octree sending thread... - QUuid nodeUUID = getOwningNode()->getUUID(); _octreeSendThread = new OctreeSendThread(nodeUUID, octreeServer); _octreeSendThread->initialize(true); } diff --git a/libraries/octree-server/src/OctreeQueryNode.h b/libraries/octree-server/src/OctreeQueryNode.h index 865f1607ab..6fc3c1a07b 100644 --- a/libraries/octree-server/src/OctreeQueryNode.h +++ b/libraries/octree-server/src/OctreeQueryNode.h @@ -24,7 +24,7 @@ class OctreeServer; class OctreeQueryNode : public OctreeQuery { public: - OctreeQueryNode(Node* owningNode); + OctreeQueryNode(); virtual ~OctreeQueryNode(); virtual PACKET_TYPE getMyPacketType() const = 0; @@ -80,7 +80,7 @@ public: OctreeSceneStats stats; - void initializeOctreeSendThread(OctreeServer* octreeServer); + void initializeOctreeSendThread(OctreeServer* octreeServer, const QUuid& nodeUUID); bool isOctreeSendThreadInitalized() { return _octreeSendThread; } void dumpOutOfView(); diff --git a/libraries/octree-server/src/OctreeServer.cpp b/libraries/octree-server/src/OctreeServer.cpp index ef9e10cc83..438f71dd16 100644 --- a/libraries/octree-server/src/OctreeServer.cpp +++ b/libraries/octree-server/src/OctreeServer.cpp @@ -22,7 +22,7 @@ OctreeServer* OctreeServer::_instance = NULL; void OctreeServer::attachQueryNodeToNode(Node* newNode) { if (newNode->getLinkedData() == NULL) { - OctreeQueryNode* newQueryNodeData = _instance->createOctreeQueryNode(newNode); + OctreeQueryNode* newQueryNodeData = _instance->createOctreeQueryNode(); newQueryNodeData->resetOctreePacket(true); // don't bump sequence newNode->setLinkedData(newQueryNodeData); } @@ -488,7 +488,7 @@ void OctreeServer::processDatagram(const QByteArray& dataByteArray, const HifiSo } OctreeQueryNode* nodeData = (OctreeQueryNode*) node->getLinkedData(); if (nodeData && !nodeData->isOctreeSendThreadInitalized()) { - nodeData->initializeOctreeSendThread(this); + nodeData->initializeOctreeSendThread(this, nodeUUID); } } } else if (packetType == PACKET_TYPE_JURISDICTION_REQUEST) { diff --git a/libraries/octree-server/src/OctreeServer.h b/libraries/octree-server/src/OctreeServer.h index aae145c45e..86ad134df0 100644 --- a/libraries/octree-server/src/OctreeServer.h +++ b/libraries/octree-server/src/OctreeServer.h @@ -48,7 +48,7 @@ public: uint64_t getLoadElapsedTime() const { return (_persistThread) ? _persistThread->getLoadElapsedTime() : 0; } // Subclasses must implement these methods - virtual OctreeQueryNode* createOctreeQueryNode(Node* newNode) = 0; + virtual OctreeQueryNode* createOctreeQueryNode() = 0; virtual Octree* createTree() = 0; virtual unsigned char getMyNodeType() const = 0; virtual PACKET_TYPE getMyQueryMessageType() const = 0; diff --git a/libraries/octree/src/OctreeQuery.cpp b/libraries/octree/src/OctreeQuery.cpp index dd65fe5246..ec474beb3d 100644 --- a/libraries/octree/src/OctreeQuery.cpp +++ b/libraries/octree/src/OctreeQuery.cpp @@ -22,8 +22,8 @@ using namespace std; static const float fingerVectorRadix = 4; // bits of precision when converting from float<->fixed -OctreeQuery::OctreeQuery(Node* owningNode) : - NodeData(owningNode), +OctreeQuery::OctreeQuery() : + NodeData(), _uuid(), _cameraPosition(0,0,0), _cameraOrientation(), diff --git a/libraries/octree/src/OctreeQuery.h b/libraries/octree/src/OctreeQuery.h index 8be18ea441..c306c5a851 100644 --- a/libraries/octree/src/OctreeQuery.h +++ b/libraries/octree/src/OctreeQuery.h @@ -51,7 +51,7 @@ class OctreeQuery : public NodeData { Q_OBJECT public: - OctreeQuery(Node* owningNode = NULL); + OctreeQuery(); virtual ~OctreeQuery(); int getBroadcastData(unsigned char* destinationBuffer); diff --git a/libraries/particle-server/src/ParticleNodeData.h b/libraries/particle-server/src/ParticleNodeData.h index 5d6655f505..1758b2e9a3 100644 --- a/libraries/particle-server/src/ParticleNodeData.h +++ b/libraries/particle-server/src/ParticleNodeData.h @@ -15,8 +15,8 @@ class ParticleNodeData : public OctreeQueryNode { public: - ParticleNodeData(Node* owningNode) : - OctreeQueryNode(owningNode), + ParticleNodeData() : + OctreeQueryNode(), _lastDeletedParticlesSentAt(0) { }; virtual PACKET_TYPE getMyPacketType() const { return PACKET_TYPE_PARTICLE_DATA; } diff --git a/libraries/particle-server/src/ParticleServer.cpp b/libraries/particle-server/src/ParticleServer.cpp index 9d7d70db83..6df12e5ff2 100644 --- a/libraries/particle-server/src/ParticleServer.cpp +++ b/libraries/particle-server/src/ParticleServer.cpp @@ -26,8 +26,8 @@ ParticleServer::~ParticleServer() { tree->removeNewlyCreatedHook(this); } -OctreeQueryNode* ParticleServer::createOctreeQueryNode(Node* newNode) { - return new ParticleNodeData(newNode); +OctreeQueryNode* ParticleServer::createOctreeQueryNode() { + return new ParticleNodeData(); } Octree* ParticleServer::createTree() { diff --git a/libraries/particle-server/src/ParticleServer.h b/libraries/particle-server/src/ParticleServer.h index e925d4e9ce..55e1b77285 100644 --- a/libraries/particle-server/src/ParticleServer.h +++ b/libraries/particle-server/src/ParticleServer.h @@ -24,7 +24,7 @@ public: ~ParticleServer(); // Subclasses must implement these methods - virtual OctreeQueryNode* createOctreeQueryNode(Node* newNode); + virtual OctreeQueryNode* createOctreeQueryNode(); virtual Octree* createTree(); virtual unsigned char getMyNodeType() const { return NODE_TYPE_PARTICLE_SERVER; } virtual PACKET_TYPE getMyQueryMessageType() const { return PACKET_TYPE_PARTICLE_QUERY; } diff --git a/libraries/shared/src/NodeData.cpp b/libraries/shared/src/NodeData.cpp index 45e8357d4f..a7fa18f409 100644 --- a/libraries/shared/src/NodeData.cpp +++ b/libraries/shared/src/NodeData.cpp @@ -8,12 +8,6 @@ #include "NodeData.h" -NodeData::NodeData(Node* owningNode) : - _owningNode(owningNode) -{ - -} - NodeData::~NodeData() { - + } \ No newline at end of file diff --git a/libraries/shared/src/NodeData.h b/libraries/shared/src/NodeData.h index 0488a6fd67..af5d13cd04 100644 --- a/libraries/shared/src/NodeData.h +++ b/libraries/shared/src/NodeData.h @@ -16,14 +16,9 @@ class Node; class NodeData : public QObject { Q_OBJECT public: - NodeData(Node* owningNode = NULL); virtual ~NodeData() = 0; virtual int parseData(unsigned char* sourceBuffer, int numBytes) = 0; - - Node* getOwningNode() { return _owningNode; } -protected: - Node* _owningNode; }; #endif diff --git a/libraries/voxel-server/src/VoxelNodeData.h b/libraries/voxel-server/src/VoxelNodeData.h index 92a5230567..9697b9cec3 100644 --- a/libraries/voxel-server/src/VoxelNodeData.h +++ b/libraries/voxel-server/src/VoxelNodeData.h @@ -14,7 +14,7 @@ class VoxelNodeData : public OctreeQueryNode { public: - VoxelNodeData(Node* owningNode) : OctreeQueryNode(owningNode) { }; + VoxelNodeData() : OctreeQueryNode() { }; virtual PACKET_TYPE getMyPacketType() const { return PACKET_TYPE_VOXEL_DATA; } }; diff --git a/libraries/voxel-server/src/VoxelServer.cpp b/libraries/voxel-server/src/VoxelServer.cpp index c8aee246e3..3a8c0d1364 100644 --- a/libraries/voxel-server/src/VoxelServer.cpp +++ b/libraries/voxel-server/src/VoxelServer.cpp @@ -24,8 +24,8 @@ VoxelServer::~VoxelServer() { // nothing special to do here... } -OctreeQueryNode* VoxelServer::createOctreeQueryNode(Node* newNode) { - return new VoxelNodeData(newNode); +OctreeQueryNode* VoxelServer::createOctreeQueryNode() { + return new VoxelNodeData(); } Octree* VoxelServer::createTree() { diff --git a/libraries/voxel-server/src/VoxelServer.h b/libraries/voxel-server/src/VoxelServer.h index 316280e37c..06cea132c0 100644 --- a/libraries/voxel-server/src/VoxelServer.h +++ b/libraries/voxel-server/src/VoxelServer.h @@ -34,7 +34,7 @@ public: int getEnvironmentDataCount() const { return sizeof(_environmentData)/sizeof(EnvironmentData); } // Subclasses must implement these methods - virtual OctreeQueryNode* createOctreeQueryNode(Node* newNode); + virtual OctreeQueryNode* createOctreeQueryNode(); virtual Octree* createTree(); virtual unsigned char getMyNodeType() const { return NODE_TYPE_VOXEL_SERVER; } virtual PACKET_TYPE getMyQueryMessageType() const { return PACKET_TYPE_VOXEL_QUERY; } diff --git a/libraries/voxels/src/VoxelQuery.cpp b/libraries/voxels/src/VoxelQuery.cpp index b595f448cb..239b352ca1 100644 --- a/libraries/voxels/src/VoxelQuery.cpp +++ b/libraries/voxels/src/VoxelQuery.cpp @@ -6,9 +6,4 @@ // Copyright (c) 2013 High Fidelity, Inc. All rights reserved. // -#include "VoxelQuery.h" - -VoxelQuery::VoxelQuery(Node* owningNode) : OctreeQuery(owningNode) { -} - - +#include "VoxelQuery.h" \ No newline at end of file diff --git a/libraries/voxels/src/VoxelQuery.h b/libraries/voxels/src/VoxelQuery.h index 0a4cdda6a4..6898430d82 100644 --- a/libraries/voxels/src/VoxelQuery.h +++ b/libraries/voxels/src/VoxelQuery.h @@ -14,10 +14,8 @@ class VoxelQuery : public OctreeQuery { public: - VoxelQuery(Node* owningNode = NULL); - // currently just an alias - + VoxelQuery() : OctreeQuery() {}; private: // privatize the copy constructor and assignment operator so they cannot be called VoxelQuery(const VoxelQuery&);