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); }