public override void Dispose()
 {
     box.dispose();
     box2.dispose();
     sphere.dispose();
     triagleAABB.dispose();
     obb.dispose();
 }
        /// <summary>
        /// Crear nube de puntos aleatorios y luego computar el mejor OBB que los ajusta
        /// </summary>
        private void generateObb()
        {
            obb.dispose();
            obb = null;

            //Crear nube ed puntos
            int   COUNT    = 10;
            float MIN_RAND = -20f;
            float MAX_RAND = 20f;

            points = new Vector3[COUNT];
            for (int i = 0; i < points.Length; i++)
            {
                float x = MIN_RAND + (float)rand.NextDouble() * (MAX_RAND - MIN_RAND);
                float y = MIN_RAND + (float)rand.NextDouble() * (MAX_RAND - MIN_RAND);
                float z = MIN_RAND + (float)rand.NextDouble() * (MAX_RAND - MIN_RAND);
                points[i] = new Vector3(x, y, z);
            }

            //Computar mejor OBB
            obb = TgcObb.computeFromPoints(points);



            if (vertices != null)
            {
                for (int i = 0; i < vertices.Length; i++)
                {
                    vertices[i].dispose();
                }
            }

            vertices = new TgcBox[points.Length];
            for (int i = 0; i < vertices.Length; i++)
            {
                vertices[i] = TgcBox.fromSize(points[i], new Vector3(1, 1, 1), Color.White);
            }
        }
Exemple #3
0
        public override void close()
        {
            textFPS.dispose();
            scenePista.disposeAll();
            humo.dispose();
            fuego.dispose();
            for (int i = 0; i < 4; i++)
            {
                ruedas[i].dispose();
            }
            autoMesh.dispose();
            meshAutoIA.dispose();
            oBBAuto.dispose();
            oBBAutoIa.dispose();
            sprite.dispose();

            //borro los puntos de control del trayecto
            for (int i = 0; i < trayecto.Count; i++)
            {
                trayecto[i].dispose();
                trayecto[i].BoundingCylinder.dispose();
                trayectoDeIA[i].dispose();
                trayectoDeIA[i].BoundingCylinder.dispose();
            }
            trayecto.Clear();
            trayectoDeIA.Clear();

            foreach (TgcObb obbColisionable in objetosColisionables)
            {
                obbColisionable.dispose();
            }

            //Liberar textos

            textPuntosDeControlAlcanzados.dispose();
            textPosicionDelAutoActual.dispose();
            textIngreseTecla.dispose();
            stringTiempo.dispose();

            //para que una vez cerrado el juego y vuelto a abrir, comience nuevamente en la pantalla de inicio
            flagInicio = 0;
            primerRenderDelJuegoAndando = true;
        }
Exemple #4
0
 public override void close()
 {
     mesh.dispose();
     obb.dispose();
 }
Exemple #5
0
 public override void Dispose()
 {
     Obb.dispose();
 }