Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
May 14, 2008, 11:44:17 AM (16 years ago)
Author:
rgrieder
Message:

merged input branch into merge branch

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/merge/src/core/InputManager.h

    r1219 r1272  
    3939
    4040#include <map>
    41 #include <list>
     41#include <vector>
    4242
    4343#include "ois/OIS.h"
    4444#include "Tickable.h"
     45#include "InputInterfaces.h"
    4546
    4647namespace orxonox
    4748{
    48   class Mouse : public OIS::Mouse
    49   {
    50   };
    51 
    5249  /**
    5350    @brief Captures and distributes mouse and keyboard input.
    5451  */
    5552  class _CoreExport InputManager
    56         : public Tickable,
     53        : public TickableReal,
    5754          public OIS::KeyListener, public OIS::MouseListener, public OIS::JoyStickListener
    5855  {
     
    7269
    7370  public: // static functions
    74     static bool initialise(const size_t windowHnd, const int windowWidth, const int windowHeight,
    75           const bool createKeyboard = true, const bool createMouse = true, const bool createJoySticks = false);
     71    static bool initialise(const size_t windowHnd, int windowWidth, int windowHeight,
     72          bool createKeyboard = true, bool createMouse = true, bool createJoySticks = false);
    7673    static bool initialiseKeyboard();
    7774    static bool initialiseMouse();
     
    8582    static void destroyMouse();
    8683    static void destroyJoySticks();
     84
     85    static bool isModifierDown(KeyboardModifier::Enum modifier);
     86    static bool isKeyDown(KeyCode::Enum key);
     87    static const MouseState getMouseState();
     88    static const JoyStickState getJoyStickState(unsigned int ID);
    8789
    8890    static void setWindowExtents(const int width, const int height);
     
    108110    static bool removeJoyStickHandler         (const std::string& name);
    109111    static JoyStickHandler* getJoyStickHandler(const std::string& name);
    110     static bool enableJoyStickHandler         (const std::string& name, const int id);
    111     static bool disableJoyStickHandler        (const std::string& name, const int id);
    112     static bool isJoyStickHandlerActive       (const std::string& name, const int id);
    113 
    114     // Temporary solutions. Will be removed soon!
    115     static OIS::Mouse*    getMouse()    { return _getSingleton().mouse_   ; }
    116     static OIS::Keyboard* getKeyboard() { return _getSingleton().keyboard_; }
     112    static bool enableJoyStickHandler         (const std::string& name, unsigned int id);
     113    static bool disableJoyStickHandler        (const std::string& name, unsigned int id);
     114    static bool isJoyStickHandlerActive       (const std::string& name, unsigned int id);
    117115
    118116  private: // functions
     
    123121
    124122    // Intenal methods
    125     bool _initialise(const size_t, const int, const int, const bool, const bool, const bool);
     123    bool _initialise(const size_t, int, int, bool, bool, bool);
    126124    bool _initialiseKeyboard();
    127125    bool _initialiseMouse();
     
    133131    void _destroyJoySticks();
    134132
    135     //void _setNumberOfJoysticks(int size);
    136 
    137133    void tick(float dt);
    138134
    139135    // input events
    140                 bool mousePressed  (const OIS::MouseEvent    &arg, OIS::MouseButtonID id);
    141                 bool mouseReleased (const OIS::MouseEvent    &arg, OIS::MouseButtonID id);
     136    bool mousePressed  (const OIS::MouseEvent    &arg, OIS::MouseButtonID id);
     137    bool mouseReleased (const OIS::MouseEvent    &arg, OIS::MouseButtonID id);
    142138    bool mouseMoved    (const OIS::MouseEvent    &arg);
    143                 bool keyPressed    (const OIS::KeyEvent      &arg);
    144                 bool keyReleased   (const OIS::KeyEvent      &arg);
    145                 bool buttonPressed (const OIS::JoyStickEvent &arg, int button);
    146                 bool buttonReleased(const OIS::JoyStickEvent &arg, int button);
    147                 bool axisMoved     (const OIS::JoyStickEvent &arg, int axis);
    148                 bool sliderMoved   (const OIS::JoyStickEvent &arg, int id);
    149                 bool povMoved      (const OIS::JoyStickEvent &arg, int id);
    150                 bool vector3Moved  (const OIS::JoyStickEvent &arg, int id);
     139    bool keyPressed    (const OIS::KeyEvent      &arg);
     140    bool keyReleased   (const OIS::KeyEvent      &arg);
     141    bool buttonPressed (const OIS::JoyStickEvent &arg, int button);
     142    bool buttonReleased(const OIS::JoyStickEvent &arg, int button);
     143    bool axisMoved     (const OIS::JoyStickEvent &arg, int axis);
     144    bool sliderMoved   (const OIS::JoyStickEvent &arg, int id);
     145    bool povMoved      (const OIS::JoyStickEvent &arg, int id);
     146    bool vector3Moved  (const OIS::JoyStickEvent &arg, int id);
    151147
    152148    static InputManager& _getSingleton();
     
    158154    OIS::Mouse*                                 mouse_;       //!< OIS keyboard
    159155    std::vector<OIS::JoyStick*>                 joySticks_;   //!< OIS joy sticks
     156    unsigned int                                joySticksSize_;
    160157
    161158    InputState state_;
    162159    InputState stateRequest_;
     160    unsigned int keyboardModifiers_;
    163161
    164162    std::map<std::string, KeyHandler*>          keyHandlers_;
     
    168166    std::vector<KeyHandler*>                    activeKeyHandlers_;
    169167    std::vector<MouseHandler*>                  activeMouseHandlers_;
    170     std::map< OIS::JoyStick*, std::vector<JoyStickHandler*> > activeJoyStickHandlers_;
     168    std::vector<std::vector<JoyStickHandler*> > activeJoyStickHandlers_;
    171169
    172     std::list<OIS::KeyCode>                     keysDown_;
    173     std::list<OIS::MouseButtonID>               mouseButtonsDown_;
    174     std::map< OIS::JoyStick*, std::list<int> >  joyStickButtonsDown_;
     170    std::vector<Key>                            keysDown_;
     171    std::vector<MouseButton::Enum>              mouseButtonsDown_;
     172    std::vector<std::vector<int> >              joyStickButtonsDown_;
    175173
    176174  };
     175
    177176}
    178177
Note: See TracChangeset for help on using the changeset viewer.