mirror of
https://github.com/JulianGro/overte.git
synced 2025-04-29 22:22:54 +02:00
Update HeadlessViewer to not always send a frustum
This commit is contained in:
parent
98cf48694e
commit
7f67547fae
2 changed files with 14 additions and 26 deletions
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue