source: trunk/src/camera.h @ 2294

Last change on this file since 2294 was 2294, checked in by touky, 10 years ago

Added MeshViewer new project, its goal being to have a program capable of previewing a mesh from an outer source (.txt, js, etc ...) in order to speed up mesh creation.
Added RadialJitter("rj") to EasyMesh parser.

  • Property svn:keywords set to Id
File size: 1.3 KB
Line 
1//
2// Lol Engine
3//
4// Copyright: (c) 2010-2013 Sam Hocevar <sam@hocevar.net>
5//   This program is free software; you can redistribute it and/or
6//   modify it under the terms of the Do What The Fuck You Want To
7//   Public License, Version 2, as published by Sam Hocevar. See
8//   http://www.wtfpl.net/ for more details.
9//
10
11//
12// The Camera class
13// ----------------
14//
15
16#if !defined __CAMERA_H__
17#define __CAMERA_H__
18
19#include "worldentity.h"
20
21namespace lol
22{
23
24class Camera : public WorldEntity
25{
26public:
27    Camera(vec3 const &position, vec3 const &target, vec3 const &up);
28    ~Camera();
29
30    char const *GetName() { return "<camera>"; }
31
32    void SetPosition(vec3 const &pos);
33    void SetRotation(quat const &rot);
34    void SetOrtho(float width, float height, float near, float far);
35    void SetPerspective(float fov, float width, float height,
36                        float near, float far);
37    void SetTarget(vec3 const &pos);
38    vec3 GetTarget();
39    vec3 GetPosition();
40
41    mat4 const &GetViewMatrix();
42    mat4 const &GetProjMatrix();
43    void ForceSceneUpdate();
44
45protected:
46    virtual void TickGame(float seconds);
47    virtual void TickDraw(float seconds);
48
49private:
50    mat4 m_view_matrix, m_proj_matrix;
51    vec3 m_target, m_up;
52};
53
54} /* namespace lol */
55
56#endif /* __CAMERA_H__ */
57
Note: See TracBrowser for help on using the repository browser.