Example #1
0
 private void Insert(Vector4 body)
 {
     if (QuadOne == null)
     {
         if (Contents.Count >= MaximumContents)
         {
             Split();
             Insert(body);
         }
         else
         {
             Contents.Add(body);
         }
     }
     else if (QuadOne.Contains(body))
     {
         QuadOne.Insert(body);
     }
     else if (QuadTwo.Contains(body))
     {
         QuadTwo.Insert(body);
     }
     else if (QuadThree.Contains(body))
     {
         QuadThree.Insert(body);
     }
     else if (QuadFour.Contains(body))
     {
         QuadFour.Insert(body);
     }
     else
     {
         Contents.Add(body);
     }
 }
        private void InitializeSmallBodyLayer(CelestialBodies.CelestialBody map)
        {
            Quadtree quadtree = new Quadtree(map.Radius, -map.Radius, -map.Radius, map.Radius);
            List <CelestialBodies.Planet> planets = map.GetAllPlanets();

            foreach (CelestialBodies.Planet planet in planets)
            {
                quadtree.Insert(planet);
            }
            List <CelestialBodies.Star> stars = map.GetAllStars();

            foreach (CelestialBodies.Star star in stars)
            {
                quadtree.Insert(star);
            }
            SmallBodyLayer_LOD0.GetComponent <ManyLayerController>().Initialize(quadtree);
        }
        private void InitializeGalaxyLayers(CelestialBodies.CelestialBody map)
        {
            Quadtree quadtree = new Quadtree(map.Radius, -map.Radius, -map.Radius, map.Radius);
            List <CelestialBodies.Galaxy> galaxies = map.GetAllGalaxies();

            foreach (CelestialBodies.Galaxy galaxy in galaxies)
            {
                quadtree.Insert(galaxy);
            }
            GalaxyLayer_LOD2.GetComponent <ManyLayerController>().Initialize(quadtree);
            GalaxyLayer_LOD3.GetComponent <ManyLayerController>().Initialize(quadtree);
        }
        private void InitializeSectorLayers(CelestialBodies.CelestialBody map)
        {
            Quadtree quadtree = new Quadtree(map.Radius, -map.Radius, -map.Radius, map.Radius);
            List <CelestialBodies.Sector> sectors = map.GetAllSectors();

            foreach (CelestialBodies.Sector sector in sectors)
            {
                quadtree.Insert(sector);
            }
            SectorLayer_LOD1.GetComponent <ManyLayerController>().Initialize(quadtree);
            SectorLayer_LOD2.GetComponent <ManyLayerController>().Initialize(quadtree);
        }
        private void InitializeSolarSystemLayers(CelestialBodies.CelestialBody map)
        {
            Quadtree quadtree = new Quadtree(map.Radius, -map.Radius, -map.Radius, map.Radius);
            List <CelestialBodies.SolarSystem> solarSystems = map.GetAllSolarSystems();

            foreach (CelestialBodies.SolarSystem solarSystem in solarSystems)
            {
                quadtree.Insert(solarSystem);
            }
            SolarSystemLayer_LOD0.GetComponent <ManyLayerController>().Initialize(quadtree);
            SolarSystemLayer_LOD1.GetComponent <ManyLayerController>().Initialize(quadtree);
        }