Newer
Older
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
class Radiateur extends QShape {
private float largeur;
private float hauteur;
private float profondeur;
private PImage texture;
Radiateur(float x, float y, float z) {
super(x, y, z);
}
void creerRadiateur(float largeur, float hauteur, float profondeur, PImage texture) {
this.largeur = largeur;
this.hauteur = hauteur;
this.profondeur = profondeur;
this.texture = texture;
shape = createShape();
shape.beginShape(QUADS);
shape.texture(texture);
shape.noStroke();
// Face avant
shape.vertex(-largeur / 2, -hauteur / 2, profondeur / 2, 0, 0);
shape.vertex(largeur / 2, -hauteur / 2, profondeur / 2, texture.width, 0);
shape.vertex(largeur / 2, hauteur / 2, profondeur / 2, texture.width, texture.height);
shape.vertex(-largeur / 2, hauteur / 2, profondeur / 2, 0, texture.height);
// Face arrière
shape.vertex(-largeur / 2, -hauteur / 2, -profondeur / 2, 0, 0);
shape.vertex(largeur / 2, -hauteur / 2, -profondeur / 2, texture.width, 0);
shape.vertex(largeur / 2, hauteur / 2, -profondeur / 2, texture.width, texture.height);
shape.vertex(-largeur / 2, hauteur / 2, -profondeur / 2, 0, texture.height);
// Côtés
shape.vertex(-largeur / 2, -hauteur / 2, -profondeur / 2, 0, 0);
shape.vertex(-largeur / 2, -hauteur / 2, profondeur / 2, texture.width, 0);
shape.vertex(-largeur / 2, hauteur / 2, profondeur / 2, texture.width, texture.height);
shape.vertex(-largeur / 2, hauteur / 2, -profondeur / 2, 0, texture.height);
shape.vertex(largeur / 2, -hauteur / 2, -profondeur / 2, 0, 0);
shape.vertex(largeur / 2, -hauteur / 2, profondeur / 2, texture.width, 0);
shape.vertex(largeur / 2, hauteur / 2, profondeur / 2, texture.width, texture.height);
shape.vertex(largeur / 2, hauteur / 2, -profondeur / 2, 0, texture.height);
// Haut
shape.vertex(-largeur / 2, hauteur / 2, -profondeur / 2, 0, 0);
shape.vertex(largeur / 2, hauteur / 2, -profondeur / 2, texture.width, 0);
shape.vertex(largeur / 2, hauteur / 2, profondeur / 2, texture.width, texture.height);
shape.vertex(-largeur / 2, hauteur / 2, profondeur / 2, 0, texture.height);
// Bas
shape.vertex(-largeur / 2, -hauteur / 2, -profondeur / 2, 0, 0);
shape.vertex(largeur / 2, -hauteur / 2, -profondeur / 2, texture.width, 0);
shape.vertex(largeur / 2, -hauteur / 2, profondeur / 2, texture.width, texture.height);
shape.vertex(-largeur / 2, -hauteur / 2, profondeur / 2, 0, texture.height);
shape.endShape();
// Ajouter les poignées
// Poignée en bas à gauche (en bleu)
poignee(-largeur / 2, -hauteur / 2, profondeur / 2);
// Poignée en bas à droite (en vert)
poignee(largeur / 2, -hauteur / 2, profondeur / 2);
}
//ajout poignée en haut à droite (en rouge)
void poignee(float x, float y, float z){
PShape poignee = createShape();
poignee.beginShape(QUADS);
poignee.noStroke();
poignee.fill(255, 0, 0);
poignee.vertex(x, y, z, 0, 0);
poignee.vertex(x, y, z+10, 0, 0);
poignee.vertex(x, y+10, z+10, 0, 0);
poignee.vertex(x, y+10, z, 0, 0);
poignee.endShape();
shape.addChild(poignee);
}
void positionnerRadiateur(float x, float y, float z) {
shape.resetMatrix();
shape.translate(x, y, z);
shape.rotateY(HALF_PI); // Pivote de 90° pour correspondre au mur gauche
}
void dessine() {
shape(shape);
}
}