File: Timeout

package info (click to toggle)
openscenegraph 3.2.1-6
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 32,904 kB
  • ctags: 34,781
  • sloc: cpp: 370,251; ansic: 10,145; java: 1,020; yacc: 548; objc: 288; makefile: 282; xml: 155; lex: 151
file content (121 lines) | stat: -rw-r--r-- 4,799 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
 *
 * This library is open source and may be redistributed and/or modified under
 * the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
 * (at your option) any later version.  The full license is in LICENSE file
 * included with this distribution, and on the openscenegraph.org website.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * OpenSceneGraph Public License for more details.
*/

#ifndef OSGPRESENTATION_TIMOUTOUT
#define OSGPRESENTATION_TIMOUTOUT 1

#include <osg/Transform>

#include <osgPresentation/SlideEventHandler>

namespace osgPresentation {

class OSGPRESENTATION_EXPORT HUDSettings : public osg::Referenced
{
    public:
        HUDSettings(double slideDistance, float eyeOffset, unsigned int leftMask, unsigned int rightMask);

        virtual bool getModelViewMatrix(osg::Matrix& matrix, osg::NodeVisitor* nv) const;

        virtual bool getInverseModelViewMatrix(osg::Matrix& matrix, osg::NodeVisitor* nv) const;

        double          _slideDistance;
        double          _eyeOffset;
        unsigned int    _leftMask;
        unsigned int    _rightMask;

protected:

        virtual ~HUDSettings();
};
    
class OSGPRESENTATION_EXPORT Timeout : public osg::Transform
{
    public:

        Timeout(HUDSettings* hudSettings=0);

        /** Copy constructor using CopyOp to manage deep vs shallow copy.*/
        Timeout(const Timeout& timeout,const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY);

        META_Node(osgPresentation, Timeout);

        
        void setIdleDurationBeforeTimeoutDisplay(double t) { _idleDurationBeforeTimeoutDisplay = t; }
        double getIdleDurationBeforeTimeoutDisplay() const { return _idleDurationBeforeTimeoutDisplay; }

        void setIdleDurationBeforeTimeoutAction(double t) { _idleDurationBeforeTimeoutAction = t; }
        double getIdleDurationBeforeTimeoutAction() const { return _idleDurationBeforeTimeoutAction; }

        
        void setKeyStartsTimoutDisplay(int key) { _keyStartsTimoutDisplay = key; }
        int getKeyStartsTimoutDisplay() const { return _keyStartsTimoutDisplay; }

        void setKeyDismissTimoutDisplay(int key) { _keyDismissTimoutDisplay = key; }
        int getKeyDismissTimoutDisplay() const { return _keyDismissTimoutDisplay; }

        void setKeyRunTimoutAction(int key) { _keyRunTimeoutAction = key; }
        int getKeyRunTimoutAction() const { return _keyRunTimeoutAction; }

        
        void setDisplayBroadcastKeyPosition(const osgPresentation::KeyPosition& keyPos) { _displayBroadcastKeyPos = keyPos; }
        const osgPresentation::KeyPosition&  getDisplayBroadcastKeyPosition() const { return _displayBroadcastKeyPos; }

        void setDismissBroadcastKeyPosition(const osgPresentation::KeyPosition& keyPos) { _dismissBroadcastKeyPos = keyPos; }
        const osgPresentation::KeyPosition&  getDismissBroadcastKeyPosition() const { return _dismissBroadcastKeyPos; }

        void setActionKeyPosition(const osgPresentation::KeyPosition& keyPos) { _actionKeyPos = keyPos; }
        const osgPresentation::KeyPosition&  getActionKeyPosition() const { return _actionKeyPos; }

        void setActionBroadcastKeyPosition(const osgPresentation::KeyPosition& keyPos) { _actionBroadcastKeyPos = keyPos; }
        const osgPresentation::KeyPosition&  getActionBroadcastKeyPosition() const { return _actionBroadcastKeyPos; }

        void setActionJumpData(const JumpData& jumpData) { _actionJumpData = jumpData; }
        const JumpData& getActionJumpData() const { return _actionJumpData; }

        virtual bool computeLocalToWorldMatrix(osg::Matrix& matrix,osg::NodeVisitor* nv) const;

        virtual bool computeWorldToLocalMatrix(osg::Matrix& matrix,osg::NodeVisitor*) const;

        virtual void traverse(osg::NodeVisitor& nv);

    protected:

        virtual ~Timeout();

        void broadcastEvent(osgViewer::Viewer* viewer, const osgPresentation::KeyPosition& keyPos);

        osg::ref_ptr<HUDSettings> _hudSettings;

        int     _previousFrameNumber;
        double  _timeOfLastEvent;
        bool    _displayTimeout;

        double  _idleDurationBeforeTimeoutDisplay;
        double  _idleDurationBeforeTimeoutAction;

        int _keyStartsTimoutDisplay;
        int _keyDismissTimoutDisplay;
        int _keyRunTimeoutAction;

        osgPresentation::KeyPosition _displayBroadcastKeyPos;
        osgPresentation::KeyPosition _dismissBroadcastKeyPos;

        osgPresentation::KeyPosition _actionKeyPos;
        osgPresentation::KeyPosition _actionBroadcastKeyPos;
        JumpData _actionJumpData;
};

}

#endif