1/* 2 * Copyright 2009, Haiku Inc. All rights reserved. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors: 6 * Alexandre Deckner <alex@zappotek.com> 7 */ 8#ifndef _CAMERA_H 9#define _CAMERA_H 10 11#include "Vector3.h" 12#include "Quaternion.h" 13 14 15class Camera { 16public: 17 Camera(const Vector3& position, 18 const Quaternion& orientation, float fov = 50.0f, float near = 1.0f, 19 float far = 100.0f); 20 virtual ~Camera(); 21 22 const Vector3& Position() const; 23 const Quaternion& Orientation() const; 24 float FieldOfView() const; 25 float Near() const; 26 float Far() const; 27 28protected: 29 Vector3 fPosition; 30 Quaternion fOrientation; 31 float fFieldOfView; 32 float fNear; 33 float fFar; 34 bool fOrtho; 35}; 36 37 38inline const Vector3& 39Camera::Position() const 40{ 41 return fPosition; 42} 43 44 45inline const Quaternion& 46Camera::Orientation() const 47{ 48 return fOrientation; 49} 50 51 52inline float 53Camera::FieldOfView() const 54{ 55 return fFieldOfView; 56} 57 58 59inline float 60Camera::Near() const 61{ 62 return fNear; 63} 64 65 66inline float 67Camera::Far() const 68{ 69 return fFar; 70} 71 72#endif /* _CAMERA_H */ 73