Pipeline graphique
 Tout Structures de données Espaces de nommage Fichiers Fonctions Variables Définitions de type Énumérations Valeurs énumérées Macros
Camera.cpp
Aller à la documentation de ce fichier.
1 #include "Camera.h"
2 
8 {
9  this->LargeurVision = 0.0;
10  this->distanceFocale = 0.0;
11 }
17 {
18 
19 }
26 {
27  this->positionObservateur = var;
28 }
35 {
36  this->positionPointObserver = var;
37 
38 }
44 void Camera::SetChampVision(float valeur)
45 {
46  this->LargeurVision = valeur;
47 }
48 
55 {
56  this->vecteurV = vecV;
57 
58 }
59 
66 {
67  return this->vecteurV;
68 }
69 
79 void Camera::SetPosAtUpFov(Math::vecteur3d& posObservateur,Math::vecteur3d& pospointObserver,Math::vecteur3d& vecV,float largeurVision)
80 {
81  this->positionObservateur = posObservateur;
82  this->positionPointObserver = pospointObserver;
83  this->vecteurV = vecV;
84  this->LargeurVision = largeurVision;
85 }
92 {
93  return this->MatriceObservation;
94 }
101 {
102  return this->MatriceProjection;
103 }
110 {
111  return this->MatriceProjectionObservation;
112 }
119 {
120  return positionObservateur;
121 }
128 {
129  return this->positionPointObserver;
130 }
131 
138 {
139  return CameraUpdated;
140 }
146 {
149 
150 
151 
152 
153  Math::vecteur3d vecteurVprim = vecteurV;
154  float temps = Math::dot3(vecteurVprim, vecteurU);
155  vecteurVprim -= (vecteurU * temps);
156 
157 
158  vecteurV = vecteurVprim;
160 
161 
162 
167 
168  distanceFocale = (float)1/(tan(LargeurVision/2.0));
169 
174  MatriceObservation.m14 = -(Math::dot3(vecteurW,positionObservateur));
178  MatriceObservation.m24 = -(Math::dot3(vecteurV,positionObservateur));
182  MatriceObservation.m34 = -(Math::dot3(vecteurU,positionObservateur));
183  MatriceObservation.m44 = 1.0;
184  //MatriceObservation.view();
185 
186  //MatriceObservation.view();
187 
189  MatriceProjection.m11 = 1.0;
190  MatriceProjection.m22 = 1.0;
191  MatriceProjection.m33 = 1.0;
193  //MatriceProjection.view();
194 
196 }
203 {
204  return this->distanceFocale;
205 }
void SetChampVision(float)
setter : valeur de champsvision
Definition: Camera.cpp:44
void mul(matrice44 &M1, matrice44 &M2)
M.mul(M1,M2) multiplication de 2 matrices 4x4.
Definition: libMath.h:235
Math::vecteur3d positionPointObserver
Point observé (i.e. U=pAt-pObs)
Definition: Camera.h:32
Math::vecteur3d & GetPointObserver()
getter : valeur de pAt
Definition: Camera.cpp:127
void SetvecteurV(Math::vecteur3d &)
setter : valeur de vV
Definition: Camera.cpp:54
Math::vecteur3d vecteurU
Vecteur U du repère de l'observateur = direction du regard (axe Z)
Definition: Camera.h:32
Math::matrice44 MatriceProjectionObservation
Produit de la matrice de projection et d'observation.
Definition: Camera.h:28
Math::vecteur3d & GetvecteurV()
getter : valeur de vv
Definition: Camera.cpp:65
Math::matrice44 & GetProjectionObservationMatrix()
retourne le produit des matrices de projection et d'observation
Definition: Camera.cpp:109
bool CameraUpdated
Booléen mis a faux des qu'un paramètre de la camèra a changé.
Definition: Camera.h:41
Math::matrice44 MatriceProjection
Matrice de projection.
Definition: Camera.h:28
Math::matrice44 & GetProjectionMatrix()
retourne la matrice de projection
Definition: Camera.cpp:100
bool isInitialized()
getter : valeur de CameraUpdated
Definition: Camera.cpp:137
float distanceFocale
Distance focale (obtenu par calcul interne)
Definition: Camera.h:39
Math::vecteur3d vecteurW
Vecteur W du repère de l'observateur.
Definition: Camera.h:32
float dot3(coord2d v1, coord2d v2)
Definition: libMath.h:30
Math::matrice44 & GetObservationMatrix()
retourne la matrice d'observation
Definition: Camera.cpp:91
void SetPosAtUpFov(Math::vecteur3d &, Math::vecteur3d &, Math::vecteur3d &, float)
setter : valeurs de pObs, pAt, vV et phi
Definition: Camera.cpp:79
void SetPointObserver(Math::vecteur3d &)
setter : valeur de pAt
Definition: Camera.cpp:34
Camera()
constructeur
Definition: Camera.cpp:7
void Update()
mise à jour de la base et des matrices de projection et d'observation
Definition: Camera.cpp:145
Math::vecteur3d positionObservateur
Position de l'observateur.
Definition: Camera.h:32
Math::vecteur3d & GetPosObservateur()
getter : valeur de pObs
Definition: Camera.cpp:118
float getDistanceFocale()
Camera::getDistanceFocale() Retourne la distance focale de la camera.
Definition: Camera.cpp:202
Math::matrice44 MatriceObservation
Matrice d'observation.
Definition: Camera.h:28
bool normalize(const float nrm)
U.normalize(norm) normalisation (sur place) en passant la norme. Retourne faux si la norme est nulle...
Definition: libMath.h:55
Math::vecteur3d vecteurV
Vecteur V du repère de l'observateur = vecteur haut (axe y)
Definition: Camera.h:32
~Camera()
destructeur
Definition: Camera.cpp:16
void SetPosObservateur(Math::vecteur3d &)
setter : valeur de pObs
Definition: Camera.cpp:25
float LargeurVision
largeur du champs de vision
Definition: Camera.h:38
void zero()
M.zero(), mise à zéro de la matrice.
Definition: libMath.h:263
structure pour les matrices 4x4
Definition: libMath.h:209