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); } }
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; }
public override void close() { mesh.dispose(); obb.dispose(); }
public override void Dispose() { Obb.dispose(); }