Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/orxonox/branches/physics/src/world_entities/camera.h @ 3953

Last change on this file since 3953 was 3953, checked in by patrick, 19 years ago

orxonox/branches/physics: merged with trunk - with command svn merge -r 3866:HEAD

File size: 1.4 KB
RevLine 
[2096]1/*!
2    \file camera.h
3    \brief Viewpoint controlling class definitions
4*/ 
[2068]5
[3224]6#ifndef _CAMERA_H
7#define _CAMERA_H
[2068]8
[3635]9#include "p_node.h"
[3641]10#include "vector.h"
[2100]11
[2636]12class World;
[3635]13class CameraTarget;
[2100]14
[3643]15enum ViewMode{VIEW_NORMAL, VIEW_BEHIND, VIEW_FRONT, VIEW_LEFT, VIEW_RIGHT, VIEW_TOP};
[3635]16
[2096]17//! Camera
18/**
[3635]19   This class controls the viewpoint from which the World is rendered.
[2096]20*/
[3635]21class Camera : public PNode
22{
[2068]23 private:
[3636]24  CameraTarget* target;            //!< The Target of the Camera (where this Camera Looks at)
25
26  float fovy;                      //!< The field of view Angle (in degrees).
27  float aspectRatio;               //!< The aspect ratio (width / height).
28  float nearClip;                  //!< The near clipping plane.
29  float farClip;                   //!< The far clipping plane.
[3639]30
[3641]31  Vector toRelCoor;
[3639]32  float toFovy;
[2551]33 
[3635]34 public:
35  Camera(void);
36  virtual ~Camera(void);
37
38  void lookAt(PNode* target);
39  PNode* getTarget();
[3636]40
41  void setAspectRatio(float aspectRatio);
42  void setFovy(float fovy);
43  void setClipRegion(float nearClip, float farClip);
44
[3639]45  void setViewMode(ViewMode mode);
46  void tick(float dt);
[3636]47  void apply (void);
[3635]48};
[2068]49
[3635]50//! A CameraTarget is where the Camera is looking at.
51class CameraTarget : public PNode
52{
[3636]53  friend class Camera;             //! The CameraTarget is a friend of Camera. noone else needs a CameraTarget, so noone else can create it.
[2551]54 
[3635]55 private:
56  CameraTarget(void);
[2636]57 
[2068]58 public:
[3635]59  virtual ~CameraTarget(void);
60};
[2068]61
62
[3224]63#endif /* _CAMERA_H */
Note: See TracBrowser for help on using the repository browser.