diff --git a/gazebo/rendering/Visual.cc b/gazebo/rendering/Visual.cc index 7dc263115a..e511ff2b64 100644 --- a/gazebo/rendering/Visual.cc +++ b/gazebo/rendering/Visual.cc @@ -811,9 +811,16 @@ void Visual::SetScale(const ignition::math::Vector3d &_scale) this->dataPtr->scale = _scale; - this->dataPtr->sceneNode->setScale( - Conversions::Convert(this->dataPtr->scale)); - + if (!ignition::math::isnan(this->dataPtr->scale.X()) + && !ignition::math::isnan(this->dataPtr->scale.Y()) + && !ignition::math::isnan(this->dataPtr->scale.Z())) + { + this->dataPtr->sceneNode->setScale( + Conversions::Convert(this->dataPtr->scale)); + } else { + gzerr << Name() << ": Size of the collision contains one or several zeros." << + " Collisions may not visualize properly." << std::endl; + } // Scale selection object in case we have one attached. Other children were // scaled from UpdateGeomSize for (auto child : this->dataPtr->children)