From b35309a45ef8d62ad53d2b74cb318634b177e87b Mon Sep 17 00:00:00 2001 From: David Rose Date: Mon, 18 Mar 2002 17:32:35 +0000 Subject: [PATCH] allow relative operations between unrelated NodePaths --- panda/src/pgraph/qpnodePath.cxx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/panda/src/pgraph/qpnodePath.cxx b/panda/src/pgraph/qpnodePath.cxx index a57f9d0e81..5e35768561 100644 --- a/panda/src/pgraph/qpnodePath.cxx +++ b/panda/src/pgraph/qpnodePath.cxx @@ -2483,11 +2483,12 @@ r_get_net_state(qpNodePathComponent *comp) const { // Access: Private // Description: Recursively determines the net state changes to the // indicated component node from the nth node above it. +// If n exceeds the length of the path, this returns the +// net transform from the root of the graph. //////////////////////////////////////////////////////////////////// CPT(RenderState) qpNodePath:: r_get_partial_state(qpNodePathComponent *comp, int n) const { - nassertr(comp != (qpNodePathComponent *)NULL, RenderState::make_empty()); - if (n == 0) { + if (n == 0 || comp == (qpNodePathComponent *)NULL) { return RenderState::make_empty(); } else { CPT(RenderState) state = comp->get_node()->get_state(); @@ -2516,11 +2517,12 @@ r_get_net_transform(qpNodePathComponent *comp) const { // Access: Private // Description: Recursively determines the net transform to the // indicated component node from the nth node above it. +// If n exceeds the length of the path, this returns the +// net transform from the root of the graph. //////////////////////////////////////////////////////////////////// CPT(TransformState) qpNodePath:: r_get_partial_transform(qpNodePathComponent *comp, int n) const { - nassertr(comp != (qpNodePathComponent *)NULL, TransformState::make_identity()); - if (n == 0) { + if (n == 0 || comp == (qpNodePathComponent *)NULL) { return TransformState::make_identity(); } else { CPT(TransformState) transform = comp->get_node()->get_transform();