gKit2 light

- Main Page
- Related Pages
- Modules
- Classes
- Files

- File List
- File Members

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
16 class Orbiter
17 {
18 public:
20 Orbiter( ) : m_center(), m_position(), m_rotation(), m_size(5.f), m_radius(5.f) {}
22 Orbiter( const Point& center, const float size ) : m_center(center), m_position(), m_rotation(), m_size(size), m_radius(size) {}
24 Orbiter( const Point& pmin, const Point& pmax ) : m_center(center(pmin, pmax)), m_position(), m_rotation(), m_size(distance(pmin, pmax)) {}
25
27 void lookat( const Point& center, const float size );
29 void lookat( const Point& pmin, const Point& pmax );
30
32 void rotation( const float x, const float y );
34 void translation( const float x, const float y );
36 void move( const float z );
37
39 Transform view( ) const;
40
42 Transform projection( const float width, const float height, const float fov ) const;
43
74 void frame( const float width, const float height, const float z, const float fov, Point& dO, Vector& dx, Vector& dy ) const;
75
77 Point position( );
78
80 int read_orbiter( const char *filename );
81
83 int write_orbiter( const char *filename );
84
85 protected:
86 Point m_center;
87 vec2 m_position;
88 vec2 m_rotation;
89 float m_size;
90 float m_radius;
91 };
92
94 #endif
Orbiter
representation de la camera, type orbiter, placee sur une sphere autour du centre de l'objet...
Definition: orbiter.h:16
vec2
vecteur generique, utilitaire.
Definition: vec.h:94
Orbiter::move
void move(const float z)
rapproche / eloigne la camera du centre.
Definition: orbiter.cpp:33
Orbiter::Orbiter
Orbiter()
cree une camera par defaut. observe le centre (0, 0, 0) a une distance 5.
Definition: orbiter.h:20
Orbiter::view
Transform view() const
renvoie la transformation vue.
Definition: orbiter.cpp:40
Vector
representation d'un vecteur 3d.
Definition: vec.h:42
Orbiter::read_orbiter
int read_orbiter(const char *filename)
relit la position de l'orbiter depuis un fichier texte.
Definition: orbiter.cpp:86
mat.h
Orbiter::position
Point position()
renvoie la position de la camera dans le repere du monde.
Definition: orbiter.cpp:78
Orbiter::projection
Transform projection(const float width, const float height, const float fov) const
renvoie la projection reglee pour une image d'aspect width / height, et une ouverture de fov degres...
Definition: orbiter.cpp:47
Orbiter::lookat
void lookat(const Point &center, const float size)
observe le point center a une distance size.
Definition: orbiter.cpp:7
Orbiter::translation
void translation(const float x, const float y)
deplace le centre / le point observe.
Definition: orbiter.cpp:27
Orbiter::Orbiter
Orbiter(const Point &center, const float size)
cree une camera. observe le point center a une distance size.
Definition: orbiter.h:22
Orbiter::Orbiter
Orbiter(const Point &pmin, const Point &pmax)
cree une camera. observe une boite alignee sur les axes.
Definition: orbiter.h:24
Orbiter::rotation
void rotation(const float x, const float y)
change le point de vue / la direction d'observation.
Definition: orbiter.cpp:21
Transform
representation d'une transformation, une matrice 4x4, organisee par ligne / row major.
Definition: mat.h:20
distance
float distance(const Point &a, const Point &b)
renvoie la distance etre 2 points.
Definition: vec.cpp:7
Point
representation d'un point 3d.
Definition: vec.h:19
Orbiter::frame
void frame(const float width, const float height, const float z, const float fov, Point &dO, Vector &dx, Vector &dy) const
Definition: orbiter.cpp:59
Orbiter::write_orbiter
int write_orbiter(const char *filename)
enregistre la position de l'orbiter dans un fichier texte.
Definition: orbiter.cpp:117
center
Point center(const Point &a, const Point &b)
renvoie le milieu du segment ab.
Definition: vec.cpp:17
vec.h