From 4b73712f512687e74547bf15260aa6fd06483fe4 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Thu, 7 Jun 2007 12:23:21 +0000 Subject: [PATCH] Added automatic stopping of animation when home() is called --- src/osgGA/DriveManipulator.cpp | 3 +-- src/osgGA/FlightManipulator.cpp | 2 +- src/osgGA/TrackballManipulator.cpp | 4 ++-- src/osgGA/UFOManipulator.cpp | 5 ++++- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/osgGA/DriveManipulator.cpp b/src/osgGA/DriveManipulator.cpp index d33ca6f75..79ef226aa 100644 --- a/src/osgGA/DriveManipulator.cpp +++ b/src/osgGA/DriveManipulator.cpp @@ -198,6 +198,7 @@ void DriveManipulator::home(const GUIEventAdapter& ea,GUIActionAdapter& us) _pitch = 0.0; us.requestRedraw(); + us.requestContinuousUpdate(false); us.requestWarpPointer((ea.getXmin()+ea.getXmax())/2.0f,(ea.getYmin()+ea.getYmax())/2.0f); @@ -362,8 +363,6 @@ bool DriveManipulator::handle(const GUIEventAdapter& ea,GUIActionAdapter& us) { flushMouseEventStack(); home(ea,us); - us.requestRedraw(); - us.requestContinuousUpdate(false); return true; } else if (ea.getKey()=='q') diff --git a/src/osgGA/FlightManipulator.cpp b/src/osgGA/FlightManipulator.cpp index 530633cd2..57b7be00f 100644 --- a/src/osgGA/FlightManipulator.cpp +++ b/src/osgGA/FlightManipulator.cpp @@ -67,7 +67,7 @@ void FlightManipulator::home(const GUIEventAdapter& ea,GUIActionAdapter& us) _velocity = 0.0; us.requestRedraw(); - + us.requestContinuousUpdate(false); us.requestWarpPointer((ea.getXmin()+ea.getXmax())/2.0f,(ea.getYmin()+ea.getYmax())/2.0f); flushMouseEventStack(); diff --git a/src/osgGA/TrackballManipulator.cpp b/src/osgGA/TrackballManipulator.cpp index dae602374..c03adc533 100644 --- a/src/osgGA/TrackballManipulator.cpp +++ b/src/osgGA/TrackballManipulator.cpp @@ -50,12 +50,14 @@ void TrackballManipulator::home(double /*currentTime*/) { if (getAutoComputeHomePosition()) computeHomePosition(); computePosition(_homeEye, _homeCenter, _homeUp); + _thrown = false; } void TrackballManipulator::home(const GUIEventAdapter& ea ,GUIActionAdapter& us) { home(ea.getTime()); us.requestRedraw(); + us.requestContinuousUpdate(false); } @@ -155,8 +157,6 @@ bool TrackballManipulator::handle(const GUIEventAdapter& ea,GUIActionAdapter& us flushMouseEventStack(); _thrown = false; home(ea,us); - us.requestRedraw(); - us.requestContinuousUpdate(false); return true; } return false; diff --git a/src/osgGA/UFOManipulator.cpp b/src/osgGA/UFOManipulator.cpp index 4364f8765..1eaae799e 100644 --- a/src/osgGA/UFOManipulator.cpp +++ b/src/osgGA/UFOManipulator.cpp @@ -162,9 +162,12 @@ void UFOManipulator::init(const GUIEventAdapter&, GUIActionAdapter&) _stop(); } -void UFOManipulator::home(const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter&) +void UFOManipulator::home(const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter& us) { home(ea.getTime()); + us.requestRedraw(); + us.requestContinuousUpdate(false); + } void UFOManipulator::home(double)