view motion/carRace2_Collision2/KeyboardHandler.h @ 6:455064176711

add motion_osg
author tokumoritaichirou@w-133-13-242-89.cc.u-ryukyu.ac.jp
date Sat, 19 Dec 2009 00:09:18 +0900
parents
children
line wrap: on
line source

#ifndef KEYBOARD_HANDLER_H
#define KEYBOARD_HANDLER_H
#include <iostream>
#include <osgGA/GUIEventHandler>

class keyboardEventHandler : public osgGA::GUIEventHandler
{
public:

	typedef void (*functionType) ();

   enum keyStatusType
   {
      KEY_UP, KEY_DOWN 
   };

   struct functionStatusType
   {
      functionStatusType() {keyState = KEY_UP; keyFunction = NULL;}
      functionType keyFunction;
      keyStatusType keyState;
   };

   bool addFunction(int whatKey, functionType newFunction);

   bool addFunction(int whatKey, keyStatusType keyPressStatus, functionType newFunction);

   virtual bool handle(const osgGA::GUIEventAdapter& ea,osgGA::GUIActionAdapter&);

   virtual void accept(osgGA::GUIEventHandlerVisitor& v)   { v.visit(*this); };

	typedef std::map<int, functionStatusType > keyFunctionMap;
   keyFunctionMap keyFuncMap;
   keyFunctionMap keyUPFuncMap;

};

#endif