mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-08-10 00:28:34 +02:00
Add keyhole radius to OctreeQuery
This commit is contained in:
parent
a99542e298
commit
b5e3dce376
7 changed files with 13 additions and 1 deletions
|
@ -225,6 +225,8 @@ bool OctreeQueryNode::updateCurrentViewFrustum() {
|
||||||
newestViewFrustum.setPosition(getCameraPosition());
|
newestViewFrustum.setPosition(getCameraPosition());
|
||||||
newestViewFrustum.setOrientation(getCameraOrientation());
|
newestViewFrustum.setOrientation(getCameraOrientation());
|
||||||
|
|
||||||
|
newestViewFrustum.setKeyholeRadius(getKeyholeRadius());
|
||||||
|
|
||||||
// Also make sure it's got the correct lens details from the camera
|
// Also make sure it's got the correct lens details from the camera
|
||||||
float originalFOV = getCameraFov();
|
float originalFOV = getCameraFov();
|
||||||
float wideFOV = originalFOV + VIEW_FRUSTUM_FOV_OVERSEND;
|
float wideFOV = originalFOV + VIEW_FRUSTUM_FOV_OVERSEND;
|
||||||
|
|
|
@ -3076,6 +3076,7 @@ void Application::queryOctree(NodeType_t serverType, PacketType packetType, Node
|
||||||
_octreeQuery.setCameraNearClip(_viewFrustum.getNearClip());
|
_octreeQuery.setCameraNearClip(_viewFrustum.getNearClip());
|
||||||
_octreeQuery.setCameraFarClip(_viewFrustum.getFarClip());
|
_octreeQuery.setCameraFarClip(_viewFrustum.getFarClip());
|
||||||
_octreeQuery.setCameraEyeOffsetPosition(glm::vec3());
|
_octreeQuery.setCameraEyeOffsetPosition(glm::vec3());
|
||||||
|
_octreeQuery.setKeyholeRadius(_viewFrustum.getKeyholeRadius());
|
||||||
auto lodManager = DependencyManager::get<LODManager>();
|
auto lodManager = DependencyManager::get<LODManager>();
|
||||||
_octreeQuery.setOctreeSizeScale(lodManager->getOctreeSizeScale());
|
_octreeQuery.setOctreeSizeScale(lodManager->getOctreeSizeScale());
|
||||||
_octreeQuery.setBoundaryLevelAdjust(lodManager->getBoundaryLevelAdjust());
|
_octreeQuery.setBoundaryLevelAdjust(lodManager->getBoundaryLevelAdjust());
|
||||||
|
|
|
@ -41,7 +41,7 @@ PacketVersion versionForPacketType(PacketType packetType) {
|
||||||
case PacketType::EntityAdd:
|
case PacketType::EntityAdd:
|
||||||
case PacketType::EntityEdit:
|
case PacketType::EntityEdit:
|
||||||
case PacketType::EntityData:
|
case PacketType::EntityData:
|
||||||
return VERSION_ENTITIES_HAVE_PARENTS;
|
return VERSION_ENTITIES_QUERY_KEYHOLE_RADIUS;
|
||||||
case PacketType::AvatarData:
|
case PacketType::AvatarData:
|
||||||
case PacketType::BulkAvatarData:
|
case PacketType::BulkAvatarData:
|
||||||
return 17;
|
return 17;
|
||||||
|
|
|
@ -161,5 +161,6 @@ const PacketVersion VERSION_ENTITIES_KEYLIGHT_PROPERTIES_GROUP_BIS = 48;
|
||||||
const PacketVersion VERSION_ENTITIES_PARTICLES_ADDITIVE_BLENDING = 49;
|
const PacketVersion VERSION_ENTITIES_PARTICLES_ADDITIVE_BLENDING = 49;
|
||||||
const PacketVersion VERSION_ENTITIES_POLYLINE_TEXTURE = 50;
|
const PacketVersion VERSION_ENTITIES_POLYLINE_TEXTURE = 50;
|
||||||
const PacketVersion VERSION_ENTITIES_HAVE_PARENTS = 51;
|
const PacketVersion VERSION_ENTITIES_HAVE_PARENTS = 51;
|
||||||
|
const PacketVersion VERSION_ENTITIES_QUERY_KEYHOLE_RADIUS = 52;
|
||||||
|
|
||||||
#endif // hifi_PacketHeaders_h
|
#endif // hifi_PacketHeaders_h
|
||||||
|
|
|
@ -56,6 +56,7 @@ void OctreeHeadlessViewer::queryOctree() {
|
||||||
_octreeQuery.setCameraNearClip(_viewFrustum.getNearClip());
|
_octreeQuery.setCameraNearClip(_viewFrustum.getNearClip());
|
||||||
_octreeQuery.setCameraFarClip(_viewFrustum.getFarClip());
|
_octreeQuery.setCameraFarClip(_viewFrustum.getFarClip());
|
||||||
_octreeQuery.setCameraEyeOffsetPosition(glm::vec3());
|
_octreeQuery.setCameraEyeOffsetPosition(glm::vec3());
|
||||||
|
_octreeQuery.setKeyholeRadius(_viewFrustum.getKeyholeRadius());
|
||||||
|
|
||||||
_octreeQuery.setOctreeSizeScale(getVoxelSizeScale());
|
_octreeQuery.setOctreeSizeScale(getVoxelSizeScale());
|
||||||
_octreeQuery.setBoundaryLevelAdjust(getBoundaryLevelAdjust());
|
_octreeQuery.setBoundaryLevelAdjust(getBoundaryLevelAdjust());
|
||||||
|
|
|
@ -37,6 +37,8 @@ int OctreeQuery::getBroadcastData(unsigned char* destinationBuffer) {
|
||||||
destinationBuffer += packClipValueToTwoByte(destinationBuffer, _cameraFarClip);
|
destinationBuffer += packClipValueToTwoByte(destinationBuffer, _cameraFarClip);
|
||||||
memcpy(destinationBuffer, &_cameraEyeOffsetPosition, sizeof(_cameraEyeOffsetPosition));
|
memcpy(destinationBuffer, &_cameraEyeOffsetPosition, sizeof(_cameraEyeOffsetPosition));
|
||||||
destinationBuffer += sizeof(_cameraEyeOffsetPosition);
|
destinationBuffer += sizeof(_cameraEyeOffsetPosition);
|
||||||
|
memcpy(destinationBuffer, &_keyholeRadius, sizeof(_keyholeRadius));
|
||||||
|
destinationBuffer += sizeof(_keyholeRadius);
|
||||||
|
|
||||||
// bitMask of less than byte wide items
|
// bitMask of less than byte wide items
|
||||||
unsigned char bitItems = 0;
|
unsigned char bitItems = 0;
|
||||||
|
@ -83,6 +85,8 @@ int OctreeQuery::parseData(ReceivedMessage& message) {
|
||||||
sourceBuffer += unpackClipValueFromTwoByte(sourceBuffer,_cameraFarClip);
|
sourceBuffer += unpackClipValueFromTwoByte(sourceBuffer,_cameraFarClip);
|
||||||
memcpy(&_cameraEyeOffsetPosition, sourceBuffer, sizeof(_cameraEyeOffsetPosition));
|
memcpy(&_cameraEyeOffsetPosition, sourceBuffer, sizeof(_cameraEyeOffsetPosition));
|
||||||
sourceBuffer += sizeof(_cameraEyeOffsetPosition);
|
sourceBuffer += sizeof(_cameraEyeOffsetPosition);
|
||||||
|
memcpy(&_keyholeRadius, sourceBuffer, sizeof(_keyholeRadius));
|
||||||
|
sourceBuffer += sizeof(_keyholeRadius);
|
||||||
|
|
||||||
// optional feature flags
|
// optional feature flags
|
||||||
unsigned char bitItems = 0;
|
unsigned char bitItems = 0;
|
||||||
|
|
|
@ -58,6 +58,7 @@ public:
|
||||||
float getCameraNearClip() const { return _cameraNearClip; }
|
float getCameraNearClip() const { return _cameraNearClip; }
|
||||||
float getCameraFarClip() const { return _cameraFarClip; }
|
float getCameraFarClip() const { return _cameraFarClip; }
|
||||||
const glm::vec3& getCameraEyeOffsetPosition() const { return _cameraEyeOffsetPosition; }
|
const glm::vec3& getCameraEyeOffsetPosition() const { return _cameraEyeOffsetPosition; }
|
||||||
|
float getKeyholeRadius() const { return _keyholeRadius; }
|
||||||
|
|
||||||
glm::vec3 calculateCameraDirection() const;
|
glm::vec3 calculateCameraDirection() const;
|
||||||
|
|
||||||
|
@ -69,6 +70,7 @@ public:
|
||||||
void setCameraNearClip(float nearClip) { _cameraNearClip = nearClip; }
|
void setCameraNearClip(float nearClip) { _cameraNearClip = nearClip; }
|
||||||
void setCameraFarClip(float farClip) { _cameraFarClip = farClip; }
|
void setCameraFarClip(float farClip) { _cameraFarClip = farClip; }
|
||||||
void setCameraEyeOffsetPosition(const glm::vec3& eyeOffsetPosition) { _cameraEyeOffsetPosition = eyeOffsetPosition; }
|
void setCameraEyeOffsetPosition(const glm::vec3& eyeOffsetPosition) { _cameraEyeOffsetPosition = eyeOffsetPosition; }
|
||||||
|
void setKeyholeRadius(float keyholeRadius) { _keyholeRadius = keyholeRadius; }
|
||||||
|
|
||||||
// related to Octree Sending strategies
|
// related to Octree Sending strategies
|
||||||
int getMaxQueryPacketsPerSecond() const { return _maxQueryPPS; }
|
int getMaxQueryPacketsPerSecond() const { return _maxQueryPPS; }
|
||||||
|
@ -88,6 +90,7 @@ protected:
|
||||||
float _cameraAspectRatio = 1.0f;
|
float _cameraAspectRatio = 1.0f;
|
||||||
float _cameraNearClip = 0.0f;
|
float _cameraNearClip = 0.0f;
|
||||||
float _cameraFarClip = 0.0f;
|
float _cameraFarClip = 0.0f;
|
||||||
|
float _keyholeRadius { 0.0f };
|
||||||
glm::vec3 _cameraEyeOffsetPosition = glm::vec3(0.0f);
|
glm::vec3 _cameraEyeOffsetPosition = glm::vec3(0.0f);
|
||||||
|
|
||||||
// octree server sending items
|
// octree server sending items
|
||||||
|
|
Loading…
Reference in a new issue