gKit2 light
Loading...
Searching...
No Matches
orbiter.h
Go to the documentation of this file.
1
2#ifndef _ORBITER_H
3#define _ORBITER_H
4
5#include "vec.h"
6#include "mat.h"
7
8
11
14
17{
18public:
20 Orbiter( ) : m_center(), m_position(), m_rotation(), m_size(5), m_radius(5), m_width(1), m_height(1), m_fov(45) {}
21
23 void lookat( const Point& center, const float size );
25 void lookat( const Point& pmin, const Point& pmax );
26
28 Transform projection( const int width, const int height, const float fov );
30 float znear( ) const;
32 float zfar( ) const;
33
35 void rotation( const float x, const float y );
37 void translation( const float x, const float y );
39 void move( const float z );
40
42 Transform view( ) const;
44 Transform projection( ) const;
46 Transform viewport( ) const;
47
81 void frame( const float z, Point& dO, Vector& dx, Vector& dy ) const;
82
84 Point position( );
88 vec2 rotation( );
89
91 int read_orbiter( const char *filename );
92
94 int write_orbiter( const char *filename );
95
97 float radius() const { return m_radius; }
98
99protected:
100 Point m_center;
101 vec2 m_position;
102 vec2 m_rotation;
103 float m_size;
104 float m_radius;
105
106 float m_width;
107 float m_height;
108 float m_fov;
109};
110
112#endif
void lookat(const Point &center, const float size)
observe le point center a une distance size.
Definition orbiter.cpp:7
vec2 rotation()
renvoie les angles de rotation de l'orbiter
Definition orbiter.cpp:122
vec3 translation()
renvoie la translation de l'orbiter
Definition orbiter.cpp:117
void frame(const float z, Point &dO, Vector &dx, Vector &dy) const
Definition orbiter.cpp:90
Orbiter()
cree une camera par defaut. observe le centre (0, 0, 0) a une distance 5.
Definition orbiter.h:20
int read_orbiter(const char *filename)
relit la position de l'orbiter depuis un fichier texte.
Definition orbiter.cpp:127
Transform viewport() const
renvoie la transformation viewport actuelle. doit etre initialise par projection(width,...
Definition orbiter.cpp:84
void move(const float z)
rapproche / eloigne la camera du centre.
Definition orbiter.cpp:34
float radius() const
renvoie le rayon de la scene.
Definition orbiter.h:97
float znear() const
renvoie le plan proche de la projection. distance min des points dans le frustum de la camera (valeur...
Definition orbiter.cpp:57
float zfar() const
revnvoie le plan loin de la projection. distance max des points dans le frustum de la camera (valeur ...
Definition orbiter.cpp:64
Transform projection() const
renvoie la transformation projection actuelle. doit etre initialise par projection(width,...
Definition orbiter.cpp:72
Point position()
renvoie la position de la camera dans le repere du monde.
Definition orbiter.cpp:109
int write_orbiter(const char *filename)
enregistre la position de l'orbiter dans un fichier texte.
Definition orbiter.cpp:161
Transform view() const
renvoie la transformation vue.
Definition orbiter.cpp:41
Point center(const Point &a, const Point &b)
renvoie le milieu du segment ab.
Definition vec.cpp:24
representation d'un point 3d.
Definition vec.h:21
representation d'une transformation, une matrice 4x4, organisee par ligne / row major.
Definition mat.h:21
representation d'un vecteur 3d.
Definition vec.h:67
vecteur generique, utilitaire.
Definition vec.h:152
vecteur generique, utilitaire.
Definition vec.h:169