예제 #1
0
    public override void LoadThermalData <T, C>()
    {
        if (thermalData == null || !(thermalData is T))
        {
            thermalData = new T();
        }

        VisionDataIO.LoadFromBinary(visionFile, thermalData as T, ref dataHeader);
    }
예제 #2
0
    IEnumerator GenerateHeatmap()
    {
        progress.info  = "Adding mesh colliders ...";
        progress.value = 0;

        IEnumerator enableCollision = EnableCollision(true);

        while (enableCollision.MoveNext())
        {
            yield return(null);
        }

        VisionDataIO.Header      header;
        Dictionary <uint, float> values = new Dictionary <uint, float>();

        foreach (string file in parameters.files)
        {
            if (cancelHeatmapGeneration)
            {
                break;
            }

            progress.info  = "Loading motion data ...";
            progress.value = 0.5f;

            yield return(null);

            MotionData data = MotionTracker.LoadData(file);
            if (data == null)
            {
                Debug.LogError("Couldn't load data for " + file);
                continue;
            }

            if (cancelHeatmapGeneration)
            {
                break;
            }

            if (data.positions.Count > 1)
            {
                progress.info  = "Generating heatmap ...";
                progress.value = 0;

                // Reset
                values.Clear();
                minValue = float.PositiveInfinity;
                maxValue = 0f;

                IEnumerator generateValues = GenerateValues(data, values, parameters.customFPS);
                while (generateValues.MoveNext())
                {
                    yield return(null);
                }

                if (cancelHeatmapGeneration)
                {
                    break;
                }

                string visionFile = file.Substring(0, file.Length - 3) + Extension;
                progress.info  = "Saving heatmap ...";
                progress.value = 0.5f;

                yield return(null);

                header.resolution = parameters.resolution;
                header.minValue   = minValue;
                header.maxValue   = maxValue;
                header.sizeX      = parameters.volumeSize.x;
                header.sizeY      = parameters.volumeSize.y;
                header.sizeZ      = parameters.volumeSize.z;
                VisionDataIO.SaveToBinary(visionFile, header, values);
            }
        }

        progress.info  = "Removing mesh colliders ...";
        progress.value = 0;

        enableCollision = EnableCollision(false);
        while (enableCollision.MoveNext())
        {
            yield return(null);
        }

        progress.value   = 1f;
        heatmapCoroutine = null;
    }