protected override void OnRenderFrame(FrameEventArgs e) { base.OnRenderFrame(e); GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit); Matrix4 modelview = Matrix4.LookAt(camera.Eye, camera.At, camera.Up); GL.MatrixMode(MatrixMode.Modelview); GL.LoadMatrix(ref modelview); #if CG_Gizmo Sru3D(); #endif for (var i = 0; i < objetosLista.Count; i++) { objetosLista[i].Desenhar(); } if (bBoxDesenhar && (objetoSelecionado != null)) { objetoSelecionado.BBox.Desenhar(); } Transformacao4D tr = new Transformacao4D(); tr.AtribuirEscala(50, 50, 50); Ponto4D pt = new Ponto4D(0, 0, 0); GL.LineWidth(5); GL.Color3(0, 0, 0); GL.Begin(PrimitiveType.LineLoop); for (var i = 0; i < movimentos.Count; i++) { for (var j = 0; j < qtMovimentos[i]; j++) { Ponto4D pt2 = tr.MultiplicarPonto(pt); GL.Vertex3(pt2.X, pt2.Y, pt2.Z); tr = tr.MultiplicarMatriz(movimentos[i]); } } GL.End(); objetoSelecionado.Matriz = objetoSelecionado.Matriz.MultiplicarMatriz(this.movimentos[i]); j++; if (j >= this.qtMovimentos[i]) { i++; j = 0; if (i >= this.movimentos.Count) { i = 0; } } this.SwapBuffers(); }