|
@@ -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);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|