root/OpenSceneGraph/trunk/include/osgPresentation/deprecated/KeyEventHandler @ 13890

Revision 13890, 2.4 kB (checked in by robert, 94 minutes ago)

From Jannik Heller, "I noticed the rotation in the OrbitManipulator? depends on the framerate. To reproduce this issue, start the osganimate example, rotate the model with the left mouse button, then let go of the mouse button while still moving. You will notice that with V-Sync enabled, the model rotates slower.

The OrbitManipulator? calculates a scale to counteract the framerate dependency, but it turns out this scale wasn't used for the rotation yet."

Line 
1/* -*-c++-*- Present3D - Copyright (C) 1999-2006 Robert Osfield
2 *
3 * This software is open source and may be redistributed and/or modified under
4 * the terms of the GNU General Public License (GPL) version 2.0.
5 * The full license is in LICENSE.txt file included with this distribution,.
6 *
7 * This software is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10 * include LICENSE.txt for more details.
11*/
12
13#ifndef KEYEVENTHANDLER
14#define KEYEVENTHANDLER 1
15
16#include <osg/StateSet>
17#include <osg/Point>
18
19#include <osgGA/GUIEventHandler>
20
21#include <osgPresentation/deprecated/SlideEventHandler>
22
23namespace osgPresentation
24{
25
26class OSGPRESENTATION_EXPORT KeyEventHandler : public osgGA::GUIEventHandler
27{
28    public:
29
30        KeyEventHandler(int key, osgPresentation::Operation operation, const JumpData& jumpData=JumpData());
31        KeyEventHandler(int key, const std::string& str, osgPresentation::Operation operation, const JumpData& jumpData=JumpData());
32        KeyEventHandler(int key, const osgPresentation::KeyPosition& keyPos, const JumpData& jumpData=JumpData());
33
34        void setKey(int key) { _key = key; }
35        int getKey() const { return _key; }
36
37        void setOperation(osgPresentation::Operation operation) { _operation = operation; }
38        osgPresentation::Operation getOperation() const { return _operation; }
39
40        void setCommand(const std::string& str) { _command = str; }
41        const std::string& getCommand() const { return _command; }
42
43        void setKeyPosition(const osgPresentation::KeyPosition& keyPos) { _keyPos = keyPos; }
44        const osgPresentation::KeyPosition&  getKeyPosition() const { return _keyPos; }
45
46        void setJumpData(const JumpData& jumpData) { _jumpData = jumpData; }
47        const JumpData& getJumpData() const { return _jumpData; }
48
49        virtual bool handle(const osgGA::GUIEventAdapter& ea,osgGA::GUIActionAdapter& aa, osg::Object* object, osg::NodeVisitor* nv);
50
51        virtual void getUsage(osg::ApplicationUsage& usage) const;
52
53        void doOperation();
54
55        int                                 _key;
56
57        std::string                         _command;
58        osgPresentation::KeyPosition        _keyPos;
59        osgPresentation::Operation          _operation;
60
61        JumpData                            _jumpData;
62};
63
64}
65
66#endif
Note: See TracBrowser for help on using the browser.