diff --git a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp index bef790299c..dde8d7f1c8 100644 --- a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp @@ -347,7 +347,6 @@ void RenderableModelEntityItem::updateModelBounds() { return; } - bool movingOrAnimating = isMovingRelativeToParent() || isAnimatingSomething(); glm::vec3 dimensions = getDimensions(); bool success; @@ -701,11 +700,12 @@ void RenderableModelEntityItem::computeShapeInfo(ShapeInfo& info) { } info.setParams(type, dimensions, _compoundShapeURL); } else if (type >= SHAPE_TYPE_SIMPLE_HULL && type <= SHAPE_TYPE_STATIC_MESH) { - updateModelBounds(); - // should never fall in here when model not fully loaded assert(_model && _model->isLoaded()); + updateModelBounds(); + _model->updateGeometry(); + // compute meshPart local transforms QVector localTransforms; const FBXGeometry& fbxGeometry = _model->getFBXGeometry(); diff --git a/libraries/render-utils/src/Model.h b/libraries/render-utils/src/Model.h index aa0c49f720..98e50c66f4 100644 --- a/libraries/render-utils/src/Model.h +++ b/libraries/render-utils/src/Model.h @@ -84,6 +84,7 @@ public: bool readyToAddToScene(RenderArgs* renderArgs = nullptr) const { return !_needsReload && isRenderable() && isActive(); } + bool needsReload() const { return _needsReload; } bool initWhenReady(render::ScenePointer scene); bool addToScene(std::shared_ptr scene, render::PendingChanges& pendingChanges, @@ -232,6 +233,9 @@ public: const glm::vec3& getRegistrationPoint() const { return _registrationPoint; } + // returns 'true' if needs fullUpdate after geometry change + bool updateGeometry(); + protected: void setPupilDilation(float dilation) { _pupilDilation = dilation; } @@ -297,9 +301,6 @@ protected: std::unordered_set _cauterizeBoneSet; bool _cauterizeBones; - // returns 'true' if needs fullUpdate after geometry change - bool updateGeometry(); - virtual void initJointStates(); void setScaleInternal(const glm::vec3& scale);