Update HeadlessViewer to not always send a frustum

This commit is contained in:
Clement 2018-04-16 17:45:11 -07:00
parent 98cf48694e
commit 7f67547fae
2 changed files with 14 additions and 26 deletions

View file

@ -14,25 +14,18 @@
#include <NodeList.h> #include <NodeList.h>
#include <OctreeLogging.h> #include <OctreeLogging.h>
OctreeHeadlessViewer::OctreeHeadlessViewer() {
_viewFrustum.setProjection(glm::perspective(glm::radians(DEFAULT_FIELD_OF_VIEW_DEGREES), DEFAULT_ASPECT_RATIO, DEFAULT_NEAR_CLIP, DEFAULT_FAR_CLIP));
}
void OctreeHeadlessViewer::queryOctree() { void OctreeHeadlessViewer::queryOctree() {
char serverType = getMyNodeType(); char serverType = getMyNodeType();
PacketType packetType = getMyQueryMessageType(); PacketType packetType = getMyQueryMessageType();
if (_hasViewFrustum) {
_octreeQuery.setMainViewFrustum(_viewFrustum); _octreeQuery.setMainViewFrustum(_viewFrustum);
_octreeQuery.setOctreeSizeScale(_voxelSizeScale); }
_octreeQuery.setBoundaryLevelAdjust(_boundaryLevelAdjust);
auto nodeList = DependencyManager::get<NodeList>(); auto nodeList = DependencyManager::get<NodeList>();
auto node = nodeList->soloNodeOfType(serverType); auto node = nodeList->soloNodeOfType(serverType);
if (node && node->getActiveSocket()) { if (node && node->getActiveSocket()) {
_octreeQuery.setMaxQueryPacketsPerSecond(getMaxPacketsPerSecond());
auto queryPacket = NLPacket::create(packetType); auto queryPacket = NLPacket::create(packetType);
// encode the query data // encode the query data

View file

@ -20,9 +20,6 @@
class OctreeHeadlessViewer : public OctreeProcessor { class OctreeHeadlessViewer : public OctreeProcessor {
Q_OBJECT Q_OBJECT
public: public:
OctreeHeadlessViewer();
virtual ~OctreeHeadlessViewer() {};
OctreeQuery& getOctreeQuery() { return _octreeQuery; } OctreeQuery& getOctreeQuery() { return _octreeQuery; }
static int parseOctreeStats(QSharedPointer<ReceivedMessage> message, SharedNodePointer sourceNode); static int parseOctreeStats(QSharedPointer<ReceivedMessage> message, SharedNodePointer sourceNode);
@ -32,34 +29,32 @@ public slots:
void queryOctree(); void queryOctree();
// setters for camera attributes // setters for camera attributes
void setPosition(const glm::vec3& position) { _viewFrustum.setPosition(position); } void setPosition(const glm::vec3& position) { _hasViewFrustum = true; _viewFrustum.setPosition(position); }
void setOrientation(const glm::quat& orientation) { _viewFrustum.setOrientation(orientation); } void setOrientation(const glm::quat& orientation) { _hasViewFrustum = true; _viewFrustum.setOrientation(orientation); }
void setCenterRadius(float radius) { _viewFrustum.setCenterRadius(radius); } void setCenterRadius(float radius) { _hasViewFrustum = true; _viewFrustum.setCenterRadius(radius); }
void setKeyholeRadius(float radius) { _viewFrustum.setCenterRadius(radius); } // TODO: remove this legacy support void setKeyholeRadius(float radius) { _hasViewFrustum = true; _viewFrustum.setCenterRadius(radius); } // TODO: remove this legacy support
// setters for LOD and PPS // setters for LOD and PPS
void setVoxelSizeScale(float sizeScale) { _voxelSizeScale = sizeScale; } void setVoxelSizeScale(float sizeScale) { _octreeQuery.setOctreeSizeScale(sizeScale) ; }
void setBoundaryLevelAdjust(int boundaryLevelAdjust) { _boundaryLevelAdjust = boundaryLevelAdjust; } void setBoundaryLevelAdjust(int boundaryLevelAdjust) { _octreeQuery.setBoundaryLevelAdjust(boundaryLevelAdjust); }
void setMaxPacketsPerSecond(int maxPacketsPerSecond) { _maxPacketsPerSecond = maxPacketsPerSecond; } void setMaxPacketsPerSecond(int maxPacketsPerSecond) { _octreeQuery.setMaxQueryPacketsPerSecond(maxPacketsPerSecond); }
// getters for camera attributes // getters for camera attributes
const glm::vec3& getPosition() const { return _viewFrustum.getPosition(); } const glm::vec3& getPosition() const { return _viewFrustum.getPosition(); }
const glm::quat& getOrientation() const { return _viewFrustum.getOrientation(); } const glm::quat& getOrientation() const { return _viewFrustum.getOrientation(); }
// getters for LOD and PPS // getters for LOD and PPS
float getVoxelSizeScale() const { return _voxelSizeScale; } float getVoxelSizeScale() const { return _octreeQuery.getOctreeSizeScale(); }
int getBoundaryLevelAdjust() const { return _boundaryLevelAdjust; } int getBoundaryLevelAdjust() const { return _octreeQuery.getBoundaryLevelAdjust(); }
int getMaxPacketsPerSecond() const { return _maxPacketsPerSecond; } int getMaxPacketsPerSecond() const { return _octreeQuery.getMaxQueryPacketsPerSecond(); }
unsigned getOctreeElementsCount() const { return _tree->getOctreeElementsCount(); } unsigned getOctreeElementsCount() const { return _tree->getOctreeElementsCount(); }
private: private:
OctreeQuery _octreeQuery; OctreeQuery _octreeQuery;
bool _hasViewFrustum { false };
ViewFrustum _viewFrustum; ViewFrustum _viewFrustum;
float _voxelSizeScale { DEFAULT_OCTREE_SIZE_SCALE };
int _boundaryLevelAdjust { 0 };
int _maxPacketsPerSecond { DEFAULT_MAX_OCTREE_PPS };
}; };
#endif // hifi_OctreeHeadlessViewer_h #endif // hifi_OctreeHeadlessViewer_h