1 // Copyright (C) 2002-2012 Nikolaus Gebhardt
\r
2 // This file is part of the "Irrlicht Engine".
\r
3 // For conditions of distribution and use, see copyright notice in irrlicht.h
\r
5 #ifndef __I_SCENE_NODE_ANIMATOR_CAMERA_MAYA_H_INCLUDED__
\r
6 #define __I_SCENE_NODE_ANIMATOR_CAMERA_MAYA_H_INCLUDED__
\r
8 #include "ISceneNodeAnimator.h"
\r
16 //! Special scene node animator for Maya-style cameras
\r
17 /** This scene node animator can be attached to a camera to make it act like a 3d
\r
19 The camera is moving relative to the target with the mouse, by pressing either
\r
20 of the three buttons.
\r
21 In order to move the camera, set a new target for the camera. The distance defines
\r
22 the current orbit radius the camera moves on. Distance can be changed via the setter
\r
25 class ISceneNodeAnimatorCameraMaya : public ISceneNodeAnimator
\r
29 //! Returns the speed of movement
\r
30 virtual f32 getMoveSpeed() const = 0;
\r
32 //! Sets the speed of movement
\r
33 virtual void setMoveSpeed(f32 moveSpeed) = 0;
\r
35 //! Returns the rotation speed
\r
36 virtual f32 getRotateSpeed() const = 0;
\r
38 //! Set the rotation speed
\r
39 virtual void setRotateSpeed(f32 rotateSpeed) = 0;
\r
41 //! Returns the zoom speed
\r
42 virtual f32 getZoomSpeed() const = 0;
\r
44 //! Set the zoom speed
\r
45 virtual void setZoomSpeed(f32 zoomSpeed) = 0;
\r
47 //! Returns the current distance, i.e. orbit radius
\r
48 virtual f32 getDistance() const = 0;
\r
50 //! Set the distance
\r
51 virtual void setDistance(f32 distance) = 0;
\r
53 //! Set the minimal distance to the camera target for zoom
\r
54 virtual void setTargetMinDistance(f32 minDistance) = 0;
\r
56 //! Returns the minimal distance to the camera target for zoom
\r
57 virtual f32 getTargetMinDistance() const = 0;
\r
61 } // end namespace scene
\r
62 } // end namespace irr
\r