From 094c717ea88c3736f885d8fef417ff73328adc6a Mon Sep 17 00:00:00 2001 From: Todd Stinson Date: Tue, 14 Aug 2012 19:10:46 -0700 Subject: PATH-842: Another tweak to get the llSetTargetOmega functionality working in the viewer. --- indra/newview/llviewerobject.cpp | 9 +++++++-- indra/newview/llviewerobject.h | 5 ++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp index fc8192f14b..bbbf071570 100644 --- a/indra/newview/llviewerobject.cpp +++ b/indra/newview/llviewerobject.cpp @@ -2075,7 +2075,7 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys, { if (new_angv != old_angv) { - resetRot(); + resetRotTime(); } // Set the rotation of the object followed by adjusting for the accumulated angular velocity (llSetTargetOmega) @@ -5547,9 +5547,14 @@ void LLViewerObject::applyAngularVelocity(F32 dt) } } -void LLViewerObject::resetRot() +void LLViewerObject::resetRotTime() { mRotTime = 0.0f; +} + +void LLViewerObject::resetRot() +{ + resetRotTime(); // Reset the accumulated angular velocity rotation mAngularVelocityRot.loadIdentity(); diff --git a/indra/newview/llviewerobject.h b/indra/newview/llviewerobject.h index 530d6531f3..05d017dee3 100644 --- a/indra/newview/llviewerobject.h +++ b/indra/newview/llviewerobject.h @@ -212,6 +212,9 @@ public: virtual BOOL updateLOD(); virtual BOOL setDrawableParent(LLDrawable* parentp); F32 getRotTime() { return mRotTime; } +private: + void resetRotTime(); +public: void resetRot(); void applyAngularVelocity(F32 dt); @@ -224,7 +227,7 @@ public: LLViewerRegion* getRegion() const { return mRegionp; } BOOL isSelected() const { return mUserSelected; } - virtual void setSelected(BOOL sel) { mUserSelected = sel; mRotTime = 0.f;} + virtual void setSelected(BOOL sel) { mUserSelected = sel; resetRot();} const LLUUID &getID() const { return mID; } U32 getLocalID() const { return mLocalID; } -- cgit v1.2.3