remove ctrav.resetPrevTransform(); make respect-prev-transform affect visualization of prev transform also
This commit is contained in:
parent
8750d233f8
commit
825cbc04bc
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Reference in New Issue