early cut at headless viewers

This commit is contained in:
ZappoMan 2014-02-26 01:24:12 -08:00
parent 5b1037cc63
commit e96206914e
7 changed files with 199 additions and 1 deletions

View file

@ -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);
}

View file

@ -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 <PacketHeaders.h>
#include <SharedUtil.h>
#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__) */

View file

@ -13,6 +13,8 @@
#include <glm/glm.hpp>
#include <stdint.h>
#include <QObject>
#include <PacketHeaders.h>
#include <SharedUtil.h>
@ -31,7 +33,8 @@ public:
// Generic client side Octree renderer class.
class OctreeRenderer {
class OctreeRenderer : public QObject {
Q_OBJECT
public:
OctreeRenderer();
virtual ~OctreeRenderer();

View file

@ -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<ParticleTree*>(_tree);
if (tree->tryLockForWrite()) {
tree->update();
tree->unlock();
}
}
}
void ParticleTreeHeadlessViewer::processEraseMessage(const QByteArray& dataByteArray, const SharedNodePointer& sourceNode) {
static_cast<ParticleTree*>(_tree)->processEraseMessage(dataByteArray, sourceNode);
}

View file

@ -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 <PacketHeaders.h>
#include <SharedUtil.h>
#include <Octree.h>
#include <OctreePacketData.h>
#include <OctreeHeadlessViewer.h>
#include "ParticleTree.h"
#include <ViewFrustum.h>
// 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__) */

View file

@ -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();
}

View file

@ -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 <PacketHeaders.h>
#include <SharedUtil.h>
#include <Octree.h>
#include <OctreePacketData.h>
#include <OctreeHeadlessViewer.h>
#include "VoxelTree.h"
#include <ViewFrustum.h>
// 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__) */