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