fix relative problem with transform on traverser root

This commit is contained in:
David Rose 2006-08-16 20:22:57 +00:00
parent 50a7a80ce2
commit a55b7e0950
3 changed files with 5 additions and 4 deletions

View File

@ -56,7 +56,7 @@ reserve(int num_colliders) {
// in the current level state.
////////////////////////////////////////////////////////////////////
void CollisionLevelState::
prepare_collider(const ColliderDef &def) {
prepare_collider(const ColliderDef &def, const NodePath &root) {
int index = (int)_colliders.size();
nassertv(index < get_max_colliders());
_colliders.push_back(def);
@ -88,7 +88,8 @@ prepare_collider(const ColliderDef &def) {
}
*/
gbv->xform(def._node_path.get_net_transform()->get_mat());
CPT(TransformState) rel_transform = def._node_path.get_transform(root);
gbv->xform(rel_transform->get_mat());
_local_bounds.push_back(gbv);
}

View File

@ -56,7 +56,7 @@ public:
void clear();
void reserve(int num_colliders);
void prepare_collider(const ColliderDef &def);
void prepare_collider(const ColliderDef &def, const NodePath &root);
INLINE static int get_max_colliders();

View File

@ -504,7 +504,7 @@ prepare_colliders(CollisionTraverser::LevelStates &level_states,
for (int s = 0; s < num_solids; ++s) {
CollisionSolid *collider = cnode->get_solid(s);
def._collider = collider;
level_state.prepare_collider(def);
level_state.prepare_collider(def, root);
if (level_state.get_num_colliders() == max_colliders) {
// That's the limit. Save off this level state and make a