public void CollideWithAsteroid(Asteroid asteroid, CollisionEndEventArgs e) { // Figure out the impulse }
private ModelVisual3D GetAsteroidBlip(Asteroid asteroid) { if (asteroid.Radius < 2) { // No need to flood the map with tiny asteroids return null; } // Material MaterialGroup materials = new MaterialGroup(); materials.Children.Add(new DiffuseMaterial(Brushes.DimGray)); //materials.Children.Add(new SpecularMaterial(Brushes.White, 20d)); // Geometry Model GeometryModel3D geometry = new GeometryModel3D(); geometry.Material = materials; geometry.BackMaterial = materials; geometry.Geometry = GetBlipGeometry(); geometry.Transform = new ScaleTransform3D(asteroid.Radius * 2, asteroid.Radius * 2, asteroid.Radius * .5); // Model Visual ModelVisual3D retVal = new ModelVisual3D(); retVal.Content = geometry; retVal.Transform = new TranslateTransform3D(asteroid.PositionWorld.ToVector()); // Exit Function return retVal; }