irrlicht/include/ISceneNodeAnimatorCameraFPS.h
cutealien 0c6385cb92 Replace public header guards to avoid using indentifiers reserved by c++
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
2021-08-27 15:03:34 +00:00

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