11.2.11 Les fonctions privées de la classe SimpleCameraGl3

Les voilà :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void SimpleCameraGl3::copyCamera(const SimpleCameraGl3 & camera){
	p_position = camera.p_position;
	p_theta = camera.p_theta;
	p_phi = camera.p_phi;
	p_rouli = camera.p_rouli;
	p_up = camera.p_up;
	p_visee = camera.p_visee;
	p_planGauche = camera.p_planGauche;
	p_windowId = camera.p_windowId;
}

void SimpleCameraGl3::initialisation(const Vecteur3f& position, float theta, float phi, float rouli){
	p_position = position;
	p_theta = theta;
	p_phi = phi;
	p_rouli = rouli;
	p_windowId = NULL;
	updateCameraGl3();
}

void SimpleCameraGl3::updateCameraGl3(){
	p_visee.setXYZ(cos(p_theta)*sin(p_phi), sin(p_theta)*sin(p_phi), cos(p_phi)); //le Vecteur de visée est bon
	p_planGauche.setXYZ(-sin(p_theta)*sin(p_rouli), cos(p_theta)*sin(p_rouli), cos(p_rouli));//Vecteur unit bon (avec p_rouli = M_PI/2.0 par défaut
	p_up = (p_visee^p_planGauche).getUnit();
}

Vous aurez remarqué qu'on ne copie pas la variable p_matriceRotation dans la fonction de copie, c'est parce qu'on ne s'en sert pas encore.