ivaria/cameramanager.h Source File (Crystal Space 2.0 Public API Reference)

| ## Public API Reference

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

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__