00001 // Copyright (C) 2002-2012 Nikolaus Gebhardt 00002 // This file is part of the "Irrlicht Engine". 00003 // For conditions of distribution and use, see copyright notice in irrlicht.h 00004 00005 #ifndef __I_SCENE_NODE_ANIMATOR_CAMERA_FPS_H_INCLUDED__ 00006 #define __I_SCENE_NODE_ANIMATOR_CAMERA_FPS_H_INCLUDED__ 00007 00008 #include "ISceneNodeAnimator.h" 00009 #include "IEventReceiver.h" 00010 #include "irrArray.h" 00011 00012 namespace irr 00013 { 00014 struct SKeyMap; 00015 00016 namespace scene 00017 { 00018 00020 00023 class ISceneNodeAnimatorCameraFPS : public ISceneNodeAnimator 00024 { 00025 public: 00026 00028 virtual f32 getMoveSpeed() const = 0; 00029 00031 virtual void setMoveSpeed(f32 moveSpeed) = 0; 00032 00034 00037 virtual f32 getRotateSpeed() const = 0; 00038 00040 virtual void setRotateSpeed(f32 rotateSpeed) = 0; 00041 00043 00045 virtual void setKeyMap(SKeyMap *map, u32 count) = 0; 00046 00049 virtual void setKeyMap(const core::array<SKeyMap>& keymap) = 0; 00050 00052 virtual const core::array<SKeyMap>& getKeyMap() const = 0; 00053 00055 00058 virtual void setVerticalMovement(bool allow) = 0; 00059 00061 00063 virtual void setInvertMouse(bool invert) = 0; 00064 }; 00065 } // end namespace scene 00066 } // end namespace irr 00067 00068 #endif 00069