diff --git a/libraries/octree/src/OctreeHeadlessViewer.cpp b/libraries/octree/src/OctreeHeadlessViewer.cpp new file mode 100644 index 0000000000..79f2e3be43 --- /dev/null +++ b/libraries/octree/src/OctreeHeadlessViewer.cpp @@ -0,0 +1,23 @@ +// +// OctreeHeadlessViewer.cpp +// hifi +// +// Created by Brad Hefta-Gaub on 2/26/14 +// Copyright (c) 2014 High Fidelity, Inc. All rights reserved. +// +// + +#include "OctreeHeadlessViewer.h" + +OctreeHeadlessViewer::OctreeHeadlessViewer() : + OctreeRenderer() { +} + +OctreeHeadlessViewer::~OctreeHeadlessViewer() { +} + +void OctreeHeadlessViewer::init() { + OctreeRenderer::init(); + setViewFrustum(&_viewFrustum); +} + diff --git a/libraries/octree/src/OctreeHeadlessViewer.h b/libraries/octree/src/OctreeHeadlessViewer.h new file mode 100644 index 0000000000..54e4a01043 --- /dev/null +++ b/libraries/octree/src/OctreeHeadlessViewer.h @@ -0,0 +1,34 @@ +// +// OctreeHeadlessViewer.h +// hifi +// +// Created by Brad Hefta-Gaub on 2/26/14 +// Copyright (c) 2014 High Fidelity, Inc. All rights reserved. +// +// + +#ifndef __hifi__OctreeHeadlessViewer__ +#define __hifi__OctreeHeadlessViewer__ + +#include +#include +#include "Octree.h" +#include "OctreeRenderer.h" +#include "Octree.h" +#include "ViewFrustum.h" + +// Generic client side Octree renderer class. +class OctreeHeadlessViewer : public OctreeRenderer { + Q_OBJECT +public: + OctreeHeadlessViewer(); + virtual ~OctreeHeadlessViewer(); + virtual void renderElement(OctreeElement* element, RenderArgs* args) { /* swallow these */ }; + + virtual void init(); + virtual void render() { /* swallow these */ }; +private: + ViewFrustum _viewFrustum; +}; + +#endif /* defined(__hifi__OctreeHeadlessViewer__) */ \ No newline at end of file diff --git a/libraries/octree/src/OctreeRenderer.h b/libraries/octree/src/OctreeRenderer.h index 4f0f76eb6c..52b0a3fc2e 100644 --- a/libraries/octree/src/OctreeRenderer.h +++ b/libraries/octree/src/OctreeRenderer.h @@ -13,6 +13,8 @@ #include #include +#include + #include #include @@ -31,7 +33,8 @@ public: // Generic client side Octree renderer class. -class OctreeRenderer { +class OctreeRenderer : public QObject { + Q_OBJECT public: OctreeRenderer(); virtual ~OctreeRenderer(); diff --git a/libraries/particles/src/ParticleTreeHeadlessViewer.cpp b/libraries/particles/src/ParticleTreeHeadlessViewer.cpp new file mode 100644 index 0000000000..f5384c3fec --- /dev/null +++ b/libraries/particles/src/ParticleTreeHeadlessViewer.cpp @@ -0,0 +1,36 @@ +// +// ParticleTreeHeadlessViewer.cpp +// hifi +// +// Created by Brad Hefta-Gaub on 2/26/14 +// Copyright (c) 2014 High Fidelity, Inc. All rights reserved. +// +// + +#include "ParticleTreeHeadlessViewer.h" + +ParticleTreeHeadlessViewer::ParticleTreeHeadlessViewer() : + OctreeHeadlessViewer() { +} + +ParticleTreeHeadlessViewer::~ParticleTreeHeadlessViewer() { +} + +void ParticleTreeHeadlessViewer::init() { + OctreeHeadlessViewer::init(); +} + + +void ParticleTreeHeadlessViewer::update() { + if (_tree) { + ParticleTree* tree = static_cast(_tree); + if (tree->tryLockForWrite()) { + tree->update(); + tree->unlock(); + } + } +} + +void ParticleTreeHeadlessViewer::processEraseMessage(const QByteArray& dataByteArray, const SharedNodePointer& sourceNode) { + static_cast(_tree)->processEraseMessage(dataByteArray, sourceNode); +} diff --git a/libraries/particles/src/ParticleTreeHeadlessViewer.h b/libraries/particles/src/ParticleTreeHeadlessViewer.h new file mode 100644 index 0000000000..08aa12280c --- /dev/null +++ b/libraries/particles/src/ParticleTreeHeadlessViewer.h @@ -0,0 +1,42 @@ +// +// ParticleTreeHeadlessViewer.h +// hifi +// +// Created by Brad Hefta-Gaub on 2/26/14 +// Copyright (c) 2014 High Fidelity, Inc. All rights reserved. +// +// + +#ifndef __hifi__ParticleTreeHeadlessViewer__ +#define __hifi__ParticleTreeHeadlessViewer__ + +#include +#include +#include +#include +#include +#include "ParticleTree.h" +#include + +// Generic client side Octree renderer class. +class ParticleTreeHeadlessViewer : public OctreeHeadlessViewer { + Q_OBJECT +public: + ParticleTreeHeadlessViewer(); + virtual ~ParticleTreeHeadlessViewer(); + + virtual Octree* createTree() { return new ParticleTree(true); } + virtual NodeType_t getMyNodeType() const { return NodeType::ParticleServer; } + virtual PacketType getMyQueryMessageType() const { return PacketTypeParticleQuery; } + virtual PacketType getExpectedPacketType() const { return PacketTypeParticleData; } + + void update(); + + ParticleTree* getTree() { return (ParticleTree*)_tree; } + + void processEraseMessage(const QByteArray& dataByteArray, const SharedNodePointer& sourceNode); + + virtual void init(); +}; + +#endif /* defined(__hifi__ParticleTreeHeadlessViewer__) */ \ No newline at end of file diff --git a/libraries/voxels/src/VoxelTreeHeadlessViewer.cpp b/libraries/voxels/src/VoxelTreeHeadlessViewer.cpp new file mode 100644 index 0000000000..999ef4fa36 --- /dev/null +++ b/libraries/voxels/src/VoxelTreeHeadlessViewer.cpp @@ -0,0 +1,22 @@ +// +// VoxelTreeHeadlessViewer.cpp +// hifi +// +// Created by Brad Hefta-Gaub on 2/26/14 +// Copyright (c) 2014 High Fidelity, Inc. All rights reserved. +// +// + +#include "VoxelTreeHeadlessViewer.h" + +VoxelTreeHeadlessViewer::VoxelTreeHeadlessViewer() : + OctreeHeadlessViewer() { +} + +VoxelTreeHeadlessViewer::~VoxelTreeHeadlessViewer() { +} + +void VoxelTreeHeadlessViewer::init() { + OctreeHeadlessViewer::init(); +} + diff --git a/libraries/voxels/src/VoxelTreeHeadlessViewer.h b/libraries/voxels/src/VoxelTreeHeadlessViewer.h new file mode 100644 index 0000000000..9c7481c929 --- /dev/null +++ b/libraries/voxels/src/VoxelTreeHeadlessViewer.h @@ -0,0 +1,38 @@ +// +// VoxelTreeHeadlessViewer.h +// hifi +// +// Created by Brad Hefta-Gaub on 2/26/14 +// Copyright (c) 2014 High Fidelity, Inc. All rights reserved. +// +// + +#ifndef __hifi__VoxelTreeHeadlessViewer__ +#define __hifi__VoxelTreeHeadlessViewer__ + +#include +#include +#include +#include +#include +#include "VoxelTree.h" +#include + +// Generic client side Octree renderer class. +class VoxelTreeHeadlessViewer : public OctreeHeadlessViewer { + Q_OBJECT +public: + VoxelTreeHeadlessViewer(); + virtual ~VoxelTreeHeadlessViewer(); + + virtual Octree* createTree() { return new VoxelTree(true); } + virtual NodeType_t getMyNodeType() const { return NodeType::VoxelServer; } + virtual PacketType getMyQueryMessageType() const { return PacketTypeVoxelQuery; } + virtual PacketType getExpectedPacketType() const { return PacketTypeVoxelData; } + + VoxelTree* getTree() { return (VoxelTree*)_tree; } + + virtual void init(); +}; + +#endif /* defined(__hifi__VoxelTreeHeadlessViewer__) */ \ No newline at end of file