diff --git a/panda/src/collide/collisionNode.cxx b/panda/src/collide/collisionNode.cxx index d93fa7d2f4..388ba39723 100644 --- a/panda/src/collide/collisionNode.cxx +++ b/panda/src/collide/collisionNode.cxx @@ -364,10 +364,13 @@ compute_internal_bounds(int pipeline_stage) const { // Now actually compute the bounding volume by putting it around all // of our solids' bounding volumes. pvector child_volumes; + pvector cpt_volumes; Solids::const_iterator gi; for (gi = _solids.begin(); gi != _solids.end(); ++gi) { - child_volumes.push_back((*gi)->get_bounds()); + CPT(BoundingVolume) volume = (*gi)->get_bounds(); + cpt_volumes.push_back(volume); + child_volumes.push_back(volume); } const BoundingVolume **child_begin = &child_volumes[0]; diff --git a/panda/src/collide/collisionSolid.cxx b/panda/src/collide/collisionSolid.cxx index 437fa23044..426644a817 100644 --- a/panda/src/collide/collisionSolid.cxx +++ b/panda/src/collide/collisionSolid.cxx @@ -331,8 +331,9 @@ fillin(DatagramIterator &scan, BamReader *manager) { _effective_normal.read_datagram(scan); } - // The viz is always stale after reading from a bam file. - _flags |= F_viz_geom_stale; + // The viz is always stale after reading from a bam file. So is the + // bounding volume. + _flags |= F_viz_geom_stale | F_internal_bounds_stale; }