void Objecte::aplicaTGCentrat(mat4 m) { // Metode a modificar this->capsa=this->calculCapsa3D(); point4 pmig = capsa.pmin; pmig[0]+=capsa.a/2.0; pmig[1]+=capsa.h/2.0; pmig[2]+=capsa.p/2.0; aplicaTG(Translate(-pmig[0],-pmig[1],-pmig[2])); aplicaTG(m); aplicaTGPoints(Translate(pmig[0],pmig[1],pmig[2])); }
void Roda::aplicaTGCentrat(mat4 m){ // calculamos el centro calculCapsa3D(); point4 centre = calculCentre(); // tenim en conte que es posible que les rodes estiguin rotades respecte les y mat4 transform_centrada = ( Translate(centre) * RotateY(angle_gir) * m * RotateY(-angle_gir) * Translate(-centre) ); // aplicmos las transformaciones aplicaTG(transform_centrada); }
void Objecte::aplicaTGCentrat(mat4 m) { // Metode a implementar calculCapsa3D(); point4 centro = calcularCentre(); mat4 TGCentrada = (Translate(centro) * m * Translate(-centro)); aplicaTG(TGCentrada); calculCapsa3D(); }
void Roda::aplicaTGCentrat(mat4 m){ // calculamos el centro calculCapsa3D(); point4 centre = calculCentre(); mat4 m1 = RotateY(-angle_gir - angle_cotxe); mat4 m2 = RotateY(angle_gir + angle_cotxe); // tenim en conte que es posible que les rodes estiguin rotades respecte les y mat4 transform_centrada = ( Translate(centre) * m2 * m * m1 * Translate(-centre) ); // aplicamos las transformaciones aplicaTG(transform_centrada); // apliquem les transformacions a les normals aplicaTGNormals(m2 * m * m1); }