//Inicia todas as animacoes de todas as geometrias que foram salvas private void btn_IniciarAnimacao_Click(object sender, EventArgs e) { this.animacao = true; int count = 0; int tempo = 0; if (txt_tempo.Text == "") { txt_tempo.Text = "0"; } tempo = int.Parse(txt_tempo.Text); while (count < tempo) { for (int j = 0; j < coordenadasAnimacoes.Count(); j++) { for (int i = 0; i < geometrias.Count(); i++) { if (geometrias[i].getId() == coordenadasAnimacoes[j].nome) { objTransformada.setDefinicao(Transformada.TrZ(coordenadasAnimacoes[j].trZ)); geometrias[i].aplica(objTransformada); addGeometria(geometrias[i]); objTransformada.setDefinicao(Transformada.TrX(coordenadasAnimacoes[j].trX)); geometrias[i].aplica(objTransformada); addGeometria(geometrias[i]); objTransformada.setDefinicao(Transformada.TrY(coordenadasAnimacoes[j].trY)); geometrias[i].aplica(objTransformada); addGeometria(geometrias[i]); objTransformada.setDefinicao(Transformada.Tt(coordenadasAnimacoes[j].ttX, coordenadasAnimacoes[j].ttY, coordenadasAnimacoes[j].ttZ)); geometrias[i].aplica(objTransformada); addGeometria(geometrias[i]); objTransformada.setDefinicao(Transformada.Ts(coordenadasAnimacoes[j].tsX, coordenadasAnimacoes[j].tsY, coordenadasAnimacoes[j].tsZ)); geometrias[i].aplica(objTransformada); addGeometria(geometrias[i]); } } desenhaGeometrias(); } Thread.Sleep(100); count++; } }
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(); } } } }