mirror of
https://github.com/minetest/irrlicht.git
synced 2024-11-14 03:33:49 +01:00
0c6385cb92
Usually something like __IRR_SOME_GUARD_INCLUDED__ replaced by IRR_SOME_GUARD_INCLUDED. Removing underscores at the end wasn't necessary, but more symmetric (probably the reason they got added there as well). While this touches every header it shouldn't affect users (I hope). Also a few whitespace changes to unify whitespace usage a bit. And a bunch of spelling fixes in comments. git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6252 dfc29bdd-3216-0410-991c-e03cc46cb475
75 lines
2.5 KiB
C++
75 lines
2.5 KiB
C++
// Copyright (C) 2002-2012 Nikolaus Gebhardt
|
|
// This file is part of the "Irrlicht Engine".
|
|
// For conditions of distribution and use, see copyright notice in irrlicht.h
|
|
|
|
#ifndef IRR_I_SCENE_NODE_ANIMATOR_CAMERA_FPS_H_INCLUDED
|
|
#define IRR_I_SCENE_NODE_ANIMATOR_CAMERA_FPS_H_INCLUDED
|
|
|
|
#include "ISceneNodeAnimator.h"
|
|
#include "IEventReceiver.h"
|
|
#include "irrArray.h"
|
|
|
|
namespace irr
|
|
{
|
|
struct SKeyMap;
|
|
|
|
namespace scene
|
|
{
|
|
|
|
//! Special scene node animator for FPS cameras
|
|
/** This scene node animator can be attached to a camera to make it act
|
|
like a first person shooter
|
|
*/
|
|
class ISceneNodeAnimatorCameraFPS : public ISceneNodeAnimator
|
|
{
|
|
public:
|
|
|
|
//! Returns the speed of movement in units per millisecond
|
|
virtual f32 getMoveSpeed() const = 0;
|
|
|
|
//! Sets the speed of movement in units per millisecond
|
|
virtual void setMoveSpeed(f32 moveSpeed) = 0;
|
|
|
|
//! Returns the rotation speed when using keyboard
|
|
virtual f32 getRotateSpeedKeyboard() const = 0;
|
|
|
|
//! Set the rotation speed when using keyboard
|
|
virtual void setRotateSpeedKeyboard(f32 rotateSpeed) = 0;
|
|
|
|
//! Returns the rotation speed in degrees when using mouse
|
|
/** The degrees are equivalent to a half screen movement of the mouse,
|
|
i.e. if the mouse cursor had been moved to the border of the screen since
|
|
the last animation. */
|
|
virtual f32 getRotateSpeed() const = 0;
|
|
|
|
//! Set the rotation speed in degrees when using mouse
|
|
virtual void setRotateSpeed(f32 rotateSpeed) = 0;
|
|
|
|
//! Sets the keyboard mapping for this animator (old style)
|
|
/** \param map Array of keyboard mappings, see irr::SKeyMap
|
|
\param count Size of the keyboard map array. */
|
|
virtual void setKeyMap(SKeyMap *map, u32 count) = 0;
|
|
|
|
//! Sets the keyboard mapping for this animator
|
|
//! \param keymap The new keymap array
|
|
virtual void setKeyMap(const core::array<SKeyMap>& keymap) = 0;
|
|
|
|
//! Gets the keyboard mapping for this animator
|
|
virtual const core::array<SKeyMap>& getKeyMap() const = 0;
|
|
|
|
//! Sets whether vertical movement should be allowed.
|
|
/** If vertical movement is enabled then the camera may fight with
|
|
gravity causing camera shake. Disable this if the camera has
|
|
a collision animator with gravity enabled. */
|
|
virtual void setVerticalMovement(bool allow) = 0;
|
|
|
|
//! Sets whether the Y axis of the mouse should be inverted.
|
|
/** If enabled then moving the mouse down will cause
|
|
the camera to look up. It is disabled by default. */
|
|
virtual void setInvertMouse(bool invert) = 0;
|
|
};
|
|
} // end namespace scene
|
|
} // end namespace irr
|
|
|
|
#endif
|