private SpaceModel<SpaceObject> MakeBurningPlanet()
        {
            var spaceModel = new SpaceModel<SpaceObject>();

            var planet = new StaticHiResObject(Vector3.Backward * 150, "Planets/PlanetBurning", 4.0f, 0.0003f, Vector3.Up);
            var star = new StarObject(Vector3.Zero, 120, 0.001f, 0.3f, 0.98f, 0.1f);
            spaceModel.AddSpaceObject(planet);
            spaceModel.AddSpaceObject(star);

            return spaceModel;
        }
        private SpaceModel<SpaceObject> MakeDiscSolarSystem()
        {
            var spaceModel = new SpaceModel<SpaceObject>();

            var star = new StarObject(new Vector3(0, 0, 0), 10);
            spaceModel.AddSpaceObject(star);

            for (int i = 0; i < 12; i++)
            {
                spaceModel.AddSpaceObject(new OrbitingPlanetObject(NextStableOrbit(star, i), 1 + (float)rand.NextDouble()));
            }

            return spaceModel;
        }
        private SpaceModel<SpaceObject> MakeSunset()
        {
            var spaceModel = new SpaceModel<SpaceObject>();

            var planet = new StaticHiResObject(Vector3.Left * 9 + Vector3.Down * 4, "Planets/EarthNight", 8.0f, 0.0003f, Vector3.Up);
            var star = new StarObject(Vector3.Forward * 20 + Vector3.Right * -5.5f + Vector3.Up * 3, 2, 0.001f, 0.9f,0.92f, 0.2f);
            spaceModel.AddSpaceObject(planet);
            spaceModel.AddSpaceObject(star);

            return spaceModel;
        }
        private SpaceModel<SpaceObject> MakeShootingOutPlanet()
        {
            var spaceModel = new SpaceModel<SpaceObject>();

            var star = new StarObject(Vector3.Zero, 10, 0.001f);
            var planet = new OrbitingPlanetObject(new Orbit(star,Vector3.Up, 0.01f, 0,40, new Vector3(1,1,20)), 3);

            spaceModel.AddSpaceObject(planet);
            spaceModel.AddSpaceObject(star);

            return spaceModel;
        }
        private SpaceModel<SpaceObject> MakeStar()
        {
            var spaceModel = new SpaceModel<SpaceObject>();

            var star = new StarObject(new Vector3(0, 0, 0), 5);
            spaceModel.AddSpaceObject(star);

            return spaceModel;
        }
        private SpaceModel<SpaceObject> MakeNebula()
        {
            var spaceModel = new SpaceModel<SpaceObject>();
            spaceModel.AddSpaceObject(MakeNebula(Vector3.Up * 2, 80, 3, 10, 0.095f));
            spaceModel.AddSpaceObject(MakeNebula(Vector3.Left * 3 + Vector3.Forward * 6, 90, 3, 10, 0.085f));
            spaceModel.AddSpaceObject(MakeNebula(Vector3.Up * 5 + Vector3.Forward * 2, 80, 3, 10, 0.055f));
            spaceModel.AddSpaceObject(MakeNebula(Vector3.Left * -6 + Vector3.Forward * 4, 80, 3, 10, 0.085f));
            spaceModel.AddSpaceObject(MakeNebula(Vector3.Up * -4, 70, 3, 10, 0.055f));

            return spaceModel;
        }
        private SpaceModel<SpaceObject> MakeOrbitingButtons()
        {
            var spaceModel = new SpaceModel<SpaceObject>();

            var star = new StarObject(Vector3.Zero, 2f);

            var debris1 = new OrbitingPlanetObject(new Orbit(star, new Vector3(3.5f, 1.5f, 0), 0.025f), 0.35f);
            var debris2 = new OrbitingPlanetObject(new Orbit(star, new Vector3(-1.5f, 2.5f, 0.3f), 0.015f), 0.25f);
            var debris3 = new OrbitingPlanetObject(new Orbit(star, new Vector3(1.5f, -2.5f, 0), 0.025f), 0.45f);
            var debris4 = new OrbitingPlanetObject(new Orbit(star, new Vector3(-1.5f, 1.2f, 1.5f), 0.025f), 0.25f);
            var debris5 = new OrbitingPlanetObject(new Orbit(star, new Vector3(1.5f, -3.5f, 0.3f), 0.035f), 0.35f);

            spaceModel.AddSpaceObject(debris1);
            spaceModel.AddSpaceObject(debris2);
            spaceModel.AddSpaceObject(debris3);
            spaceModel.AddSpaceObject(debris4);
            spaceModel.AddSpaceObject(debris5);

            var moon1 = new OrbitingSpaceObject(new Orbit(star, Vector3.Forward, 0.0009f, 0.0f, 7), 1f);
            var moon2 = new OrbitingSpaceObject(new Orbit(star, Vector3.Forward, 0.0009f, 1.25f, 7), 1f);
            var moon3 = new OrbitingSpaceObject(new Orbit(star, Vector3.Forward, 0.0009f, 2.5f, 7), 1f);
            var moon4 = new OrbitingSpaceObject(new Orbit(star, Vector3.Forward, 0.0009f, 3.75f, 7), 1f);
            var moon5 = new OrbitingSpaceObject(new Orbit(star, Vector3.Forward, 0.0009f, 5.0f, 7), 1f);

            spaceModel.AddSpaceObject(star);
            spaceModel.AddSpaceObject(moon1);
            spaceModel.AddSpaceObject(moon2);
            spaceModel.AddSpaceObject(moon3);
            spaceModel.AddSpaceObject(moon4);
            spaceModel.AddSpaceObject(moon5);

            return spaceModel;
        }
        private SpaceModel<SpaceObject> MakeMainMenuModel()
        {
            var spaceModel = new SpaceModel<SpaceObject>();

            var star = new StarObject(new Vector3(0, 0, 0), 10);
            spaceModel.AddSpaceObject(star);

            var mainPlanet1 = new OrbitingPlanetObject(new Orbit(star, new Vector3(40, 40, 40), 0.01f), 3f);
            var mainPlanet2 = new OrbitingPlanetObject(new Orbit(star, new Vector3(30, -40, 10), 0.01f), 4f);
            var mainPlanet3 = new OrbitingPlanetObject(new Orbit(star, new Vector3(30, 20, -20), 0.01f), 5f);
            var mainPlanet4 = new OrbitingPlanetObject(new Orbit(star, new Vector3(-10, -10, 10), 0.03f), 2f);

            spaceModel.AddSpaceObject(mainPlanet1);
            spaceModel.AddSpaceObject(mainPlanet2);
            spaceModel.AddSpaceObject(mainPlanet3);
            spaceModel.AddSpaceObject(mainPlanet4);

            var moon1 = new OrbitingPlanetObject(new Orbit(mainPlanet3, new Vector3(4, 4, 4), 0.1f), 0.35f);
            var moon2 = new OrbitingPlanetObject(new Orbit(mainPlanet3, new Vector3(-3, -8, -1), 0.1f), 0.45f);
            var moon3 = new OrbitingPlanetObject(new Orbit(mainPlanet3, new Vector3(-5, -2, 3), 0.1f), 0.2f);
            var moon4 = new OrbitingPlanetObject(new Orbit(mainPlanet3, new Vector3(3, 8, 1), 0.1f), 0.45f);
            var moon5 = new OrbitingPlanetObject(new Orbit(mainPlanet1, new Vector3(-5, -1, 3), 0.1f), 0.2f);
            var moon6 = new OrbitingPlanetObject(new Orbit(mainPlanet1, new Vector3(3, 2, -2), 0.1f), 0.55f);

            spaceModel.AddSpaceObject(moon1);
            spaceModel.AddSpaceObject(moon2);
            spaceModel.AddSpaceObject(moon3);
            spaceModel.AddSpaceObject(moon4);
            spaceModel.AddSpaceObject(moon5);
            spaceModel.AddSpaceObject(moon6);

            return spaceModel;
        }
        private SpaceModel<SpaceObject> MakeFastSolarSystem()
        {
            var spaceModel = new SpaceModel<SpaceObject>();

            var star = new StarObject(new Vector3(0, 0, 0), 10);
            spaceModel.AddSpaceObject(star);

            float orbM = 10;
            float sizM = 5;
            float speedM = 0.4f;
            var moon1 = new OrbitingPlanetObject(new Orbit(star, new Vector3(4, 4, 4) * orbM, 0.1f * speedM), 0.35f * sizM);
            var moon2 = new OrbitingPlanetObject(new Orbit(star, new Vector3(-3, -8, -1) * orbM, 0.1f * speedM), 0.45f * sizM);
            var moon3 = new OrbitingPlanetObject(new Orbit(star, new Vector3(-5, -2, 3) * orbM, 0.1f * speedM), 0.2f * sizM);
            var moon4 = new OrbitingPlanetObject(new Orbit(star, new Vector3(3, 8, 1) * orbM, 0.1f * speedM), 0.45f * sizM);
            var moon5 = new OrbitingPlanetObject(new Orbit(star, new Vector3(-5, -1, 3) * orbM, 0.1f * speedM), 0.2f * sizM);
            var moon6 = new OrbitingPlanetObject(new Orbit(star, new Vector3(3, 2, -2) * orbM, 0.1f * speedM), 0.55f * sizM);

            spaceModel.AddSpaceObject(moon1);
            spaceModel.AddSpaceObject(moon2);
            spaceModel.AddSpaceObject(moon3);
            spaceModel.AddSpaceObject(moon4);
            spaceModel.AddSpaceObject(moon5);
            spaceModel.AddSpaceObject(moon6);

            return spaceModel;
        }
        private SpaceModel<SpaceObject> MakeEncyclopediaSolarSystem()
        {
            var spaceModel = new SpaceModel<SpaceObject>();

            var star = new StarObject(new Vector3(0, 0, 0), 1);
            spaceModel.AddSpaceObject(star);

            var mainPlanet1 = new OrbitingPlanetObject(new Orbit(star, new Vector3(4, 4, 4), 0.01f), 0.3f);
            var mainPlanet2 = new OrbitingPlanetObject(new Orbit(star, new Vector3(3, -4, 1), 0.01f), 0.4f);
            var mainPlanet3 = new OrbitingPlanetObject(new Orbit(star, new Vector3(3, 2, -2), 0.01f), 0.5f);
            var mainPlanet4 = new OrbitingPlanetObject(new Orbit(star, new Vector3(-1, -1, 1), 0.03f), 0.2f);

            spaceModel.AddSpaceObject(mainPlanet1);
            spaceModel.AddSpaceObject(mainPlanet2);
            spaceModel.AddSpaceObject(mainPlanet3);
            spaceModel.AddSpaceObject(mainPlanet4);

            var moon1 = new OrbitingPlanetObject(new Orbit(mainPlanet3, new Vector3(0.4f, 0.4f, 0.4f), 0.1f), 0.035f);
            var moon2 = new OrbitingPlanetObject(new Orbit(mainPlanet3, new Vector3(-0.3f, -0.8f, -0.1f), 0.1f), 0.045f);
            var moon3 = new OrbitingPlanetObject(new Orbit(mainPlanet3, new Vector3(-0.5f, -0.2f, 0.3f), 0.1f), 0.02f);
            var moon4 = new OrbitingPlanetObject(new Orbit(mainPlanet3, new Vector3(0.3f, 0.8f, 0.1f), 0.1f), 0.045f);
            var moon5 = new OrbitingPlanetObject(new Orbit(mainPlanet1, new Vector3(-0.5f, -0.1f, 0.3f), 0.1f), 0.02f);
            var moon6 = new OrbitingPlanetObject(new Orbit(mainPlanet1, new Vector3(0.3f, 0.2f, -0.2f), 0.1f), 0.055f);

            spaceModel.AddSpaceObject(moon1);
            spaceModel.AddSpaceObject(moon2);
            spaceModel.AddSpaceObject(moon3);
            spaceModel.AddSpaceObject(moon4);
            spaceModel.AddSpaceObject(moon5);
            spaceModel.AddSpaceObject(moon6);

            return spaceModel;
        }
        private SpaceModel<SpaceObject> MakeEncyclopediaPlanet()
        {
            var spaceModel = new SpaceModel<SpaceObject>();

            var planet = new StaticPlanetObject(Vector3.Zero, 5f);

            var moon1 = new OrbitingPlanetObject(new Orbit(planet, new Vector3(4, 4, 4), 0.01f), 0.35f);
            var moon2 = new OrbitingPlanetObject(new Orbit(planet, new Vector3(-3, -8, -1), 0.02f), 0.45f);
            var moon3 = new OrbitingPlanetObject(new Orbit(planet, new Vector3(-5, -2, 3), 0.01f), 0.2f);
            var moon4 = new OrbitingPlanetObject(new Orbit(planet, new Vector3(3, 8, 1), 0.03f), 0.45f);

            spaceModel.AddSpaceObject(planet);
            spaceModel.AddSpaceObject(moon1);
            spaceModel.AddSpaceObject(moon2);
            spaceModel.AddSpaceObject(moon3);
            spaceModel.AddSpaceObject(moon4);

            return spaceModel;
        }
        private SpaceModel<SpaceObject> MakeEncyclopediaGalaxy()
        {
            var spaceModel = new SpaceModel<SpaceObject>();
            var galaxy = MakeGalaxy(Vector3.Zero, 20000, 1000, 1f, 0.065f);
            galaxy.Rotation = new Vector3(0,0.25f, 0);
            spaceModel.AddSpaceObject(galaxy);

            return spaceModel;
        }