fix relative problem with transform on traverser root
This commit is contained in:
parent
50a7a80ce2
commit
a55b7e0950
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue