Esempio n. 1
0
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]));

}
Esempio n. 2
0
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);

}
Esempio n. 3
0
void Objecte::aplicaTGCentrat(mat4 m)
{
    // Metode a implementar

    calculCapsa3D();

    point4 centro = calcularCentre();

    mat4 TGCentrada = (Translate(centro) * m * Translate(-centro));

    aplicaTG(TGCentrada);

    calculCapsa3D();

}
Esempio n. 4
0
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);
}