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(); } } } }