diff --git a/panda/src/collide/collisionNode.cxx b/panda/src/collide/collisionNode.cxx index f0074c7c56..0d7318009d 100644 --- a/panda/src/collide/collisionNode.cxx +++ b/panda/src/collide/collisionNode.cxx @@ -229,25 +229,27 @@ cull_callback(CullTraverser *trav, CullTraverserData &data) { } } - // Determine the previous frame's position, relative to the - // current position. - NodePath node_path = data._node_path.get_node_path(); - CPT(TransformState) transform = node_path.get_net_transform()->invert_compose(node_path.get_net_prev_transform()); - - if (!transform->is_identity()) { - // If we have a velocity, also draw the previous frame's position, - // ghosted. - - for (si = _solids.begin(); si != _solids.end(); ++si) { - CollisionSolid *solid = (*si); - PT(PandaNode) node = solid->get_viz(trav, data, false); - if (node != (PandaNode *)NULL) { - CullTraverserData next_data(data, node); - - next_data._net_transform = - next_data._net_transform->compose(transform); - next_data._state = get_last_pos_state(); - trav->traverse(next_data); + if (respect_prev_transform) { + // Determine the previous frame's position, relative to the + // current position. + NodePath node_path = data._node_path.get_node_path(); + CPT(TransformState) transform = node_path.get_net_transform()->invert_compose(node_path.get_net_prev_transform()); + + if (!transform->is_identity()) { + // If we have a velocity, also draw the previous frame's position, + // ghosted. + + for (si = _solids.begin(); si != _solids.end(); ++si) { + CollisionSolid *solid = (*si); + PT(PandaNode) node = solid->get_viz(trav, data, false); + if (node != (PandaNode *)NULL) { + CullTraverserData next_data(data, node); + + next_data._net_transform = + next_data._net_transform->compose(transform); + next_data._state = get_last_pos_state(); + trav->traverse(next_data); + } } } } diff --git a/panda/src/collide/collisionTraverser.cxx b/panda/src/collide/collisionTraverser.cxx index 1a7234c7bb..ff48bc0d1c 100644 --- a/panda/src/collide/collisionTraverser.cxx +++ b/panda/src/collide/collisionTraverser.cxx @@ -309,17 +309,6 @@ traverse(const NodePath &root) { CollisionPlane::flush_level(); } -//////////////////////////////////////////////////////////////////// -// Function: CollisionTraverser::reset_prev_transform -// Access: Published -// Description: This method is deprecated. Just call -// PandaNode::reset_all_prev_transform() now. -//////////////////////////////////////////////////////////////////// -void CollisionTraverser:: -reset_prev_transform(const NodePath &) { - PandaNode::reset_all_prev_transform(); -} - #ifdef DO_COLLISION_RECORDING //////////////////////////////////////////////////////////////////// // Function: CollisionTraverser::set_recorder diff --git a/panda/src/collide/collisionTraverser.h b/panda/src/collide/collisionTraverser.h index 40c75cdfd5..fa585698b5 100644 --- a/panda/src/collide/collisionTraverser.h +++ b/panda/src/collide/collisionTraverser.h @@ -66,7 +66,6 @@ PUBLISHED: void clear_colliders(); void traverse(const NodePath &root); - void reset_prev_transform(const NodePath &root); #ifdef DO_COLLISION_RECORDING void set_recorder(CollisionRecorder *recorder);