CrystalSpace

Public API Reference

ivaria/cameramanager.h
Go to the documentation of this file.
00001 /*
00002   Copyright (C) 2010-11 Christian Van Brussel, Institute of Information
00003       and Communication Technologies, Electronics and Applied Mathematics
00004       at Universite catholique de Louvain, Belgium
00005       http://www.uclouvain.be/en-icteam.html
00006 
00007   This library is free software; you can redistribute it and/or
00008   modify it under the terms of the GNU Library General Public
00009   License as published by the Free Software Foundation; either
00010   version 2 of the License, or (at your option) any later version.
00011 
00012   This library is distributed in the hope that it will be useful,
00013   but WITHOUT ANY WARRANTY; without even the implied warranty of
00014   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00015   Library General Public License for more details.
00016 
00017   You should have received a copy of the GNU Library General Public
00018   License along with this library; if not, write to the Free
00019   Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
00020 */
00021 #ifndef __CS_IVARIA_CAMERAMANAGER_H__
00022 #define __CS_IVARIA_CAMERAMANAGER_H__
00023 
00032 #include "cssysdef.h"
00033 #include "csutil/scf.h"
00034 
00035 struct iCamera;
00036 class csVector3;
00037 
00038 namespace CS {
00039 namespace Utility {
00040 
00044 enum CameraMode
00045 {
00046   CAMERA_NO_MOVE = 0,     
00047   CAMERA_MOVE_FREE,       
00048   CAMERA_MOVE_LOOKAT,     
00049   CAMERA_ROTATE           
00050 };
00051 
00061 struct iCameraManager : public virtual iBase
00062 {
00063   SCF_INTERFACE (CS::Utility::iCameraManager, 1, 0, 0);
00064 
00066   virtual void SetCamera (iCamera* camera) = 0;
00068   virtual iCamera* GetCamera () = 0;
00069 
00071   virtual void SetCameraMode (CameraMode cameraMode) = 0;
00073   virtual CameraMode GetCameraMode () = 0;
00074 
00079   virtual void SetStartPosition (csVector3 position) = 0;
00080 
00084   virtual csVector3 GetStartPosition () = 0;
00085 
00090   virtual void ClearStartPosition () = 0;
00091 
00095   virtual bool HasStartPosition () = 0;
00096 
00102   virtual void SwitchCameraPosition () = 0;
00103 
00109   virtual void SetCameraTarget (csVector3 position) = 0;
00110 
00116   virtual csVector3 GetCameraTarget () = 0;
00117 
00123   virtual void SetCameraMinimumDistance (float distance) = 0;
00124 
00130   virtual float GetCameraMinimumDistance () = 0;
00131 
00143   virtual void SetMouseMoveEnabled (bool enabled) = 0;
00144 
00148   virtual bool GetMouseMoveEnabled () = 0;
00149 
00155   virtual void ResetCamera () = 0;
00156 
00161   virtual void SetMotionSpeed (float speed) = 0;
00162 
00166   virtual float GetMotionSpeed () = 0;
00167 
00172   virtual void SetRotationSpeed (float speed) = 0;
00173 
00177   virtual float GetRotationSpeed () = 0;
00178 };
00179 
00180 } //namespace Utility
00181 } //namespace CS
00182 
00185 #endif // __CS_IVARIA_CAMERAMANAGER_H__

Generated for Crystal Space 2.0 by doxygen 1.7.6.1