// Update is called once per frame
    void Update()
    {
        if (visualCube.transform.localScale != visualScale)
        {
            visualScale = visualCube.transform.localScale;
            if (spawner == null)
            {
                spawner = FindObjectOfType <SpawnSpheres>();
            }
            spawner.particleSystemM.transform.localScale = visualScale;
            spawner.particleSystemK.transform.localScale = visualScale;
            spawner.particleSystemG.transform.localScale = visualScale;
            spawner.particleSystemF.transform.localScale = visualScale;
            spawner.particleSystemA.transform.localScale = visualScale;
        }

        if (!ROI && dynamicLOD && data_manager.octree != null)
        {
            if (!coroutineRunning)
            {
                dynamicLODCoroutine = StartCoroutine(data_manager.SplitOctreeLODWithPixelSize());
            }
        }


        if (queryObjectNearest.activeSelf)
        {
            QueryNearest();
        }
    }
Esempio n. 2
0
    void Start()
    {
        http_fetcher = FindObjectOfType <HttpFileFetcher>();
        ui_manager   = FindObjectOfType <UIManager>();
        data_manager = FindObjectOfType <DataManager>();
        spawner      = FindObjectOfType <SpawnSpheres>();

        Directory.CreateDirectory(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/HoloLens Data");
    }
    public void ToggleSpectralClass(int spectralClass)
    {
        if (spawner == null)
        {
            spawner = FindObjectOfType <SpawnSpheres>();
        }
        switch (spectralClass)
        {
        case 0:
            spawner.particleSystemM.gameObject.SetActive(!spawner.particleSystemM.gameObject.activeSelf);
            if (data_manager.octree == null)
            {
                return;
            }
            spawner.ApplyToParticleSystem('M', data_manager.averageSpectralM);
            break;

        case 1:
            Debug.Log("toggle 1");
            spawner.particleSystemK.gameObject.SetActive(!spawner.particleSystemK.gameObject.activeSelf);
            if (data_manager.octree == null)
            {
                return;
            }
            spawner.ApplyToParticleSystem('K', data_manager.averageSpectralK);
            break;

        case 2:
            spawner.particleSystemG.gameObject.SetActive(!spawner.particleSystemG.gameObject.activeSelf);
            if (data_manager.octree == null)
            {
                return;
            }
            spawner.ApplyToParticleSystem('G', data_manager.averageSpectralG);
            break;

        case 3:
            spawner.particleSystemF.gameObject.SetActive(!spawner.particleSystemF.gameObject.activeSelf);
            if (data_manager.octree == null)
            {
                return;
            }
            spawner.ApplyToParticleSystem('F', data_manager.averageSpectralF);
            break;

        case 4:
            spawner.particleSystemA.gameObject.SetActive(!spawner.particleSystemA.gameObject.activeSelf);
            if (data_manager.octree == null)
            {
                return;
            }
            spawner.ApplyToParticleSystem('A', data_manager.averageSpectralA);
            break;
        }
    }
Esempio n. 4
0
    public void SetLegendColor()
    {
        SpawnSpheres spawner = FindObjectOfType <SpawnSpheres>();

        spectralMText.color = spawner.spectralColorM;
        spectralKText.color = spawner.spectralColorK;
        spectralGText.color = spawner.spectralColorG;
        spectralFText.color = spawner.spectralColorF;
        spectralAText.color = spawner.spectralColorA;

        spectralImageM.color = spawner.spectralColorM;
        spectralImageK.color = spawner.spectralColorK;
        spectralImageG.color = spawner.spectralColorG;
        spectralImageF.color = spawner.spectralColorF;
        spectralImageA.color = spawner.spectralColorA;
    }
    // Start is called before the first frame update
    void Start()
    {
        visualScale = new Vector3(0.5f, 0.5f, 0.5f);
        ui_manager  = FindObjectOfType <UIManager>();
        parentCube.SetActive(true);
        visualCube.SetActive(false);

        photonView   = GetComponent <PhotonView>();
        spawner      = FindObjectOfType <SpawnSpheres>();
        mainCam      = Camera.main;
        reader       = FindObjectOfType <Reader>();
        data_manager = FindObjectOfType <DataManager>();

        ui_manager.SetHUDMapPosition(Vector3.zero, 1f);

        Vector3 newRay = visualCube.transform.right;

        Debug.Log(newRay);
    }
Esempio n. 6
0
    public void CalculateAverageLists <T>(List <T> list, float x = 0, float y = 0, float z = 0, float radius = -1)
    {
        if (spawner == null)
        {
            spawner = FindObjectOfType <SpawnSpheres>();
        }
        averageSpectralM.Clear();
        averageSpectralK.Clear();
        averageSpectralG.Clear();
        averageSpectralF.Clear();
        averageSpectralA.Clear();

        for (int i = 0; i < list.Count; i++)
        {
            List <Vector3> position    = new List <Vector3>();
            List <int>     temperature = new List <int>();
            List <float>   size        = new List <float>();
            if (typeof(T) == typeof(CelestialBody))
            {
                if (radius == -1)
                {
                    position.Add((list[i] as CelestialBody).position);
                }
                else
                {
                    Vector3 roiCenterToPoint = (list[i] as CelestialBody).position - new Vector3(x, y, z);
                    float   ratio            = roiCenterToPoint.magnitude / radius;
                    Vector3 newPosition      = roiCenterToPoint.normalized * ratio;

                    ROI_celestialBodyCloud[i] = new CelestialBody
                    {
                        position    = newPosition,
                        temperature = (list[i] as CelestialBody).temperature,
                        distance    = (list[i] as CelestialBody).distance,
                        radius      = (list[i] as CelestialBody).radius,
                        source_id   = (list[i] as CelestialBody).source_id
                    };
                    ROI_octree.Add(ROI_celestialBodyCloud[i], ROI_celestialBodyCloud[i].position);
                    position.Add(newPosition);
                }
                temperature.Add((list[i] as CelestialBody).temperature);
                size.Add(spawner.particleSize);
            }
            if (typeof(T) == typeof(PointOctreeNode <CelestialBody>))
            {
                if (!(list[i] as PointOctreeNode <CelestialBody>).HasChildren)
                {
                    foreach (PointOctreeNode <CelestialBody> .OctreeObject cel in (list[i] as PointOctreeNode <CelestialBody>).objects)
                    {
                        position.Add(cel.Obj.position);
                        temperature.Add(cel.Obj.temperature);
                        size.Add(spawner.particleSize);
                    }
                }
                else
                {
                    position.Add((list[i] as PointOctreeNode <CelestialBody>).averagePositionOfNodes);
                    temperature.Add((list[i] as PointOctreeNode <CelestialBody>).averageTempOfNodes);
                    size.Add((list[i] as PointOctreeNode <CelestialBody>).distanceFromAverage);
                }
            }
            for (int j = 0; j < temperature.Count; j++)
            {
                if (temperature[j] <= 3700)
                {
                    averageSpectralM.Add(new Tuple <Vector3, float>(position[j], size[j]));
                }
                else if (temperature[j] > 3700 && temperature[j] <= 5200)
                {
                    averageSpectralK.Add(new Tuple <Vector3, float>(position[j], size[j]));
                }
                else if (temperature[j] > 5200 && temperature[j] <= 6000)
                {
                    averageSpectralG.Add(new Tuple <Vector3, float>(position[j], size[j]));
                }
                else if (temperature[j] > 6000 && temperature[j] <= 7500)
                {
                    averageSpectralF.Add(new Tuple <Vector3, float>(position[j], size[j]));
                }
                else if (temperature[j] > 7500 && temperature[j] <= 10000)
                {
                    averageSpectralA.Add(new Tuple <Vector3, float>(position[j], size[j]));
                }
            }
        }

        spawner.ApplyToParticleSystem('M', averageSpectralM);
        spawner.ApplyToParticleSystem('K', averageSpectralK);
        spawner.ApplyToParticleSystem('G', averageSpectralG);
        spawner.ApplyToParticleSystem('F', averageSpectralF);
        spawner.ApplyToParticleSystem('A', averageSpectralA);
    }