Jelajahi Sumber

allow relative operations between unrelated NodePaths

David Rose 24 tahun lalu
induk
melakukan
b35309a45e
1 mengubah file dengan 6 tambahan dan 4 penghapusan
  1. 6 4
      panda/src/pgraph/qpnodePath.cxx

+ 6 - 4
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();