diff --git a/include/openspace/rendering/renderable.h b/include/openspace/rendering/renderable.h index ca8d52c0e3..60c9d15674 100644 --- a/include/openspace/rendering/renderable.h +++ b/include/openspace/rendering/renderable.h @@ -108,6 +108,7 @@ protected: properties::StringProperty _renderableType; void setBoundingSphere(double boundingSphere); + void setInteractionSphere(double interactionSphere); void setRenderBinFromOpacity(); void registerUpdateRenderBinFromOpacity(); diff --git a/modules/globebrowsing/src/renderableglobe.cpp b/modules/globebrowsing/src/renderableglobe.cpp index 024ec67996..39c561518f 100644 --- a/modules/globebrowsing/src/renderableglobe.cpp +++ b/modules/globebrowsing/src/renderableglobe.cpp @@ -556,6 +556,9 @@ RenderableGlobe::RenderableGlobe(const ghoul::Dictionary& dictionary) } } + // For globes, the interaction sphere is always the same as the bounding sphere + setInteractionSphere(boundingSphere()); + _generalProperties.performShading = p.performShading.value_or(_generalProperties.performShading); @@ -851,6 +854,7 @@ void RenderableGlobe::update(const UpdateData& data) { } } setBoundingSphere(bs); + setInteractionSphere(bs); glm::dmat4 translation = glm::translate(glm::dmat4(1.0), data.modelTransform.translation); diff --git a/src/rendering/renderable.cpp b/src/rendering/renderable.cpp index e416a01e40..b9c9f6459c 100644 --- a/src/rendering/renderable.cpp +++ b/src/rendering/renderable.cpp @@ -167,6 +167,10 @@ double Renderable::boundingSphere() const { return _boundingSphere; } +void Renderable::setInteractionSphere(double interactionSphere) { + _interactionSphere = interactionSphere; +} + double Renderable::interactionSphere() const { return _interactionSphere; }