public void configTransformada(float theta, float phi, float rho, float d)
        {
            this.theta = theta;
            this.phi   = phi;
            this.rho   = rho;
            this.d     = d;

            t3d.setDefinicao(Transformada.Tv3D(theta, phi, rho));

            CgUtils.show(t3d.getDefinicao());
        }
    static Transformada build(String[] dados)
    {
        Transformada transformada = new Transformada();

        transformada.setId(dados[0]);
        transformada.setDefinicao(Transformada.identidade());

        for (int i = 1; i < dados.GetLength(0); i++)
        {
            String[] parameters = dados[i].Split(' ');

            float[,] definicaoAtual = null;

            if (parameters[0] == "tt")
            {
                definicaoAtual = Transformada.Tt(Convert.ToSingle(parameters[1]), Convert.ToSingle(parameters[2]), Convert.ToSingle(parameters[3]));
            }
            else if (parameters[0] == "trz")
            {
                definicaoAtual = Transformada.TrZ(Convert.ToSingle(parameters[1]));
            }
            else if (parameters[0] == "trx")
            {
                definicaoAtual = Transformada.TrX(Convert.ToSingle(parameters[1]));
            }
            else if (parameters[0] == "try")
            {
                definicaoAtual = Transformada.TrY(Convert.ToSingle(parameters[1]));
            }
            else if (parameters[0] == "ts")
            {
                definicaoAtual = Transformada.Ts(Convert.ToSingle(parameters[1]), Convert.ToSingle(parameters[2]), Convert.ToSingle(parameters[3]));
            }

            transformada.setDefinicao(CgUtils.mult(transformada.getDefinicao(), definicaoAtual));
        }
        return(transformada);
    }
 //Aplicar transformacao
 private void btn_Transformada_Click(object sender, EventArgs e)
 {
     if (comboBox_transformada.Text == "Rotacao")
     {
         for (int i = 0; i < geometrias.Count(); i++)
         {
             if (geometrias[i].getId() == txt_getId.Text)
             {
                 if (txt_tZ.Text == "")
                 {
                     txt_tZ.Text = "0";
                 }
                 if (txt_tX.Text == "")
                 {
                     txt_tX.Text = "0";
                 }
                 if (txt_tY.Text == "")
                 {
                     txt_tY.Text = "0";
                 }
                 objTransformada.setDefinicao(Transformada.TrZ(int.Parse(txt_tZ.Text)));
                 geometrias[i].aplica(objTransformada);
                 objTransformada.setDefinicao(Transformada.TrX(int.Parse(txt_tX.Text)));
                 geometrias[i].aplica(objTransformada);
                 objTransformada.setDefinicao(Transformada.TrY(int.Parse(txt_tY.Text)));
                 geometrias[i].aplica(objTransformada);
                 addGeometria(geometrias[i]);
                 desenhaGeometrias();
             }
         }
     }
     if (comboBox_transformada.Text == "Translacao")
     {
         for (int i = 0; i < geometrias.Count(); i++)
         {
             if (geometrias[i].getId() == txt_getId.Text)
             {
                 if (txt_tZ.Text == "")
                 {
                     txt_tZ.Text = "0";
                 }
                 if (txt_tX.Text == "")
                 {
                     txt_tX.Text = "0";
                 }
                 if (txt_tY.Text == "")
                 {
                     txt_tY.Text = "0";
                 }
                 objTransformada.setDefinicao(Transformada.Tt(float.Parse(txt_tX.Text), float.Parse(txt_tY.Text), float.Parse(txt_tZ.Text)));
                 geometrias[i].aplica(objTransformada);
                 addGeometria(geometrias[i]);
                 desenhaGeometrias();
             }
         }
     }
     if (comboBox_transformada.Text == "Scala")
     {
         for (int i = 0; i < geometrias.Count(); i++)
         {
             if (geometrias[i].getId() == txt_getId.Text)
             {
                 if (txt_tZ.Text == "")
                 {
                     txt_tZ.Text = "1";
                 }
                 if (txt_tX.Text == "")
                 {
                     txt_tX.Text = "1";
                 }
                 if (txt_tY.Text == "")
                 {
                     txt_tY.Text = "1";
                 }
                 objTransformada.setDefinicao(Transformada.Ts(float.Parse(txt_tX.Text), float.Parse(txt_tY.Text), float.Parse(txt_tZ.Text)));
                 geometrias[i].aplica(objTransformada);
                 addGeometria(geometrias[i]);
                 desenhaGeometrias();
             }
         }
     }
 }