From 579febfb12811561d8ebbae8e4bea7705a6f6518 Mon Sep 17 00:00:00 2001 From: Greg Wiatroski Date: Thu, 19 Aug 2004 04:09:16 +0000 Subject: [PATCH] mod'd hpr's returned from nodePath get hpr to prevent overflow errors now that we are bounds checking on sendUpdates --- panda/src/pgraph/nodePath.cxx | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/panda/src/pgraph/nodePath.cxx b/panda/src/pgraph/nodePath.cxx index 2df42c5064..5c5e20fcd2 100644 --- a/panda/src/pgraph/nodePath.cxx +++ b/panda/src/pgraph/nodePath.cxx @@ -916,7 +916,11 @@ get_hpr() const { nassertr_always(!is_empty(), LVecBase3f(0.0f, 0.0f, 0.0f)); CPT(TransformState) transform = get_transform(); nassertr(transform->has_hpr(), LVecBase3f(0.0f, 0.0f, 0.0f)); - return transform->get_hpr(); + LVecBase3f hpr = transform->get_hpr(); + hpr[0] = fmod(hpr[0], 360); + hpr[1] = fmod(hpr[1], 360); + hpr[2] = fmod(hpr[2], 360); + return hpr; } //////////////////////////////////////////////////////////////////// @@ -1401,7 +1405,12 @@ get_hpr(const NodePath &other) const { nassertr_always(!is_empty(), LVecBase3f(0.0f, 0.0f, 0.0f)); CPT(TransformState) transform = get_transform(other); nassertr(transform->has_hpr(), LVecBase3f(0.0f, 0.0f, 0.0f)); - return transform->get_hpr(); + // now that we are range checking fields we must clamp this + LVecBase3f hpr = transform->get_hpr(); + hpr[0] = fmod(hpr[0], 360); + hpr[1] = fmod(hpr[1], 360); + hpr[2] = fmod(hpr[2], 360); + return hpr; } ////////////////////////////////////////////////////////////////////