Projekt

Obecné

Profil

Stáhnout (1.54 KB) Statistiky
| Větev: | Tag: | Revize:
1
#ifndef _CAMERA_HPP
2
#define _CAMERA_HPP
3

    
4
#include <QMatrix4x4>
5
#include <QVector3D>
6

    
7
/// Třída Camera představuje kameru, neboli pohled pozorovatele.
8
class Camera: public QMatrix4x4
9
{
10
    public:
11
        /// Konstruktor.
12
        /// Prázdný konstruktor.
13
        Camera();
14
        
15
        /// Nastavení pozice kamery v prostoru. Vždy bude směrovat do středu.
16
        /// @param QVector3D position - pozice kamery v prostoru.
17
        void set(QVector3D position);
18
        
19
        /// Provede přiblížení kamery ke středu.
20
        void zoomIn();
21
        
22
        /// Provede oddálení kamery od středu.
23
        void zoomOut();
24

    
25
        /// Vrátí pozici kamery v prostoru
26
        /// @return pozice kamery v prostoru.
27
        QVector3D getPosition();
28
        
29
    private:
30
        /// Atribut k určení spodní hranice délky vektoru (pozice kamery).
31
        static const int MIN_DIST;
32
        
33
        /// Atribut k určení horní hranice délky vektoru (pozice kamery).
34
        static const int MAX_DIST;
35
        
36
        /// Pozice kamery v prostoru.
37
        QVector3D position;
38
        
39
        /// Střed, vždy počátek soustavy souřadnic [0, 0, 0].
40
        QVector3D center;
41
        
42
        /// @return vektor od středu do pozice kamery.
43
        QVector3D getVectorToPosition();
44
        
45
        /// Nastaví jednotkovou matici. Vynásobí ji maticí pohledu, která je
46
        /// odvozena od bodu, ve kterém se nachází kamera, od směru pohledu a
47
        /// od směru nahoru od kamery (vždy [0, 1, 0]).
48
        void lookAt();
49
};
50

    
51
#endif
(2-2/4)