Beispiel #1
0
    /// <summary>
    ///
    /// </summary>
    /// <param name="csvds">CSV data source</param>
    /// <param name="filteringValue"> filtered value</param>
    /// <param name="filteringAttribute"> filtering attribute </param>
    /// <param name="color"></param>
    /// <returns></returns>
    View Facet(CSVDataSource csvds, string filteringValue, string filteringAttribute, Color color)
    {
        //B02598
        //B02512

        // filters the array on a particular value in another dimension
        Filter baseFilter = (array, datasource, value, dimension) =>
        {
            return(array.Select((b, i) => new { index = i, _base = b })
                   .Where(b => datasource.getOriginalValuePrecise(csvds[dimension].Data[b.index], dimension).ToString() == value)
                   .Select(b => b._base).ToArray());
        };

        Filter identity = (ar, ds, fv, fa) => { return(ar); };
        // baseFilter = identity;

        var xData = baseFilter(csvds["Lat"].Data, csvds, filteringValue, filteringAttribute);
        var yData = baseFilter(csvds["Lon"].Data, csvds, filteringValue, filteringAttribute);
        var zData = baseFilter(csvds["Base"].Data, csvds, filteringValue, filteringAttribute);

        ViewBuilder vb = new ViewBuilder(MeshTopology.Points, "Uber pick up point visualisation").
                         initialiseDataView(xData.Length).
                         setDataDimension(xData, ViewBuilder.VIEW_DIMENSION.X).
                         setDataDimension(yData, ViewBuilder.VIEW_DIMENSION.Y).
                         //setDataDimension(zData, ViewBuilder.VIEW_DIMENSION.Z).
                         setSize(baseFilter(csvds["Date"].Data, csvds, filteringValue, filteringAttribute)).
                         setColors(xData.Select(x => color).ToArray());

        Material mt = IATKUtil.GetMaterialFromTopology(AbstractVisualisation.GeometryType.Points);

        mt.SetFloat("_MinSize", 0.01f);
        mt.SetFloat("_MaxSize", 0.05f);

        return(vb.updateView().apply(gameObject, mt));
    }
 private void Awake()
 {
     if (dataSource == null)
     {
         dataSource = ChartManager.Instance.DataSource;
     }
 }
Beispiel #3
0
    /// <summary>
    /// Diese Methode färbt falls er bei der Klassifizierung fehelrhaft interpretiert worden ist ein.
    /// </summary>
    public void colorError(CSVDataSource dataSource)
    {
        int columnindex = 0;

        int j = 0;

        foreach (var column in dataSource)
        {
            if (column.Identifier.Equals(dataSource.categoryColumn))
            {
                columnindex = j;
            }
            // dann möchte ich den index und befülle diesen index dann unten
            j++;
        }

        if (!(dataSource.results[index].Equals(dataSource.getOriginalValue(dataSource[columnindex].Data[index], dataSource[columnindex].Identifier).ToString())))
        {
            Renderer renderer = this.GetComponent <Renderer>();
            if (dataSource.resultColor != null)
            {
                color = Utilities.HexToColor(dataSource.resultColor);
                renderer.material.color = color;
            }
            else
            {
                color = Color.red;
                renderer.material.color = color;
            }
        }
    }
Beispiel #4
0
    // a space time cube
    View Uber(CSVDataSource csvds)
    {
        // header
        // Date,Time,Lat,Lon,Base
        Gradient g = new Gradient();

        GradientColorKey[] gck = new GradientColorKey[2];
        gck[0]      = new GradientColorKey(Color.blue, 0);
        gck[1]      = new GradientColorKey(Color.red, 1);
        g.colorKeys = gck;

        // create a view builder with the point topology
        ViewBuilder vb = new ViewBuilder(MeshTopology.Points, "Uber pick up point visualisation").
                         initialiseDataView(csvds.DataCount).
                         setDataDimension(csvds["Lat"].Data, ViewBuilder.VIEW_DIMENSION.X).
                         setDataDimension(csvds["Base"].Data, ViewBuilder.VIEW_DIMENSION.Y).
                         setSize(csvds["Base"].Data).
                         setColors(csvds["Time"].Data.Select(x => g.Evaluate(x)).ToArray());

        // initialise the view builder wiith thhe number of data points and parent GameOBject

        //Enumerable.Repeat(1f, dataSource[0].Data.Length).ToArray()
        Material mt = IATKUtil.GetMaterialFromTopology(AbstractVisualisation.GeometryType.Points);

        mt.SetFloat("_MinSize", 0.01f);
        mt.SetFloat("_MaxSize", 0.05f);

        View v = vb.updateView().apply(gameObject, mt);

        return(v);
    }
Beispiel #5
0
    // Use this for initialization
    void Start()
    {
        CSVDataSource csvds = createCSVDataSource(dataSource.text);

        Gradient g = new Gradient();

        GradientColorKey[] gck = new GradientColorKey[2];
        gck[0]      = new GradientColorKey(Color.blue, 0);
        gck[1]      = new GradientColorKey(Color.red, 1);
        g.colorKeys = gck;

        //stock,date,open

        // create a view builder with the point topology
        ViewBuilder vb = new ViewBuilder(MeshTopology.Lines, "Uber pick up point visualisation").
                         initialiseDataView(csvds.DataCount).
                         setDataDimension(csvds["stock"].Data, ViewBuilder.VIEW_DIMENSION.X).
                         setDataDimension(csvds["date"].Data, ViewBuilder.VIEW_DIMENSION.Y).
                         setDataDimension(csvds["open"].Data, ViewBuilder.VIEW_DIMENSION.Z).
                         setSize(csvds["volume"].Data).
                         setColors(csvds["volume"].Data.Select(x => g.Evaluate(x)).ToArray()).
                         createIndicesLinkedTopology(csvds["stock"].Data);

        // create a view builder with the point topology

        Material mt = IATKUtil.GetMaterialFromTopology(AbstractVisualisation.GeometryType.Lines);

        //Material mt = new Material(Shader.Find("IATK/LinesShader"));
        mt.mainTexture = Resources.Load("circle-outline-basic") as Texture2D;
        mt.renderQueue = 3000;
        mt.SetFloat("_MinSize", 0.01f);
        mt.SetFloat("_MaxSize", 0.05f);

        View view = vb.updateView().apply(gameObject, mt);
    }
Beispiel #6
0
        public override int NumberOfLabels()
        {
            if (IsDiscreet())
            {
                if (attributeFilter.minScale > 0.001f || attributeFilter.maxScale < 0.999f)
                {
                    return(0);
                }

                CSVDataSource csvDataSource = (CSVDataSource)dataSource;
                int           numValues     = csvDataSource.TextualDimensionsListReverse[attributeFilter.Attribute].Count;

                if (numValues < (Mathf.CeilToInt(axisLength / 0.075f)))
                {
                    return(numValues);
                }
                else
                {
                    return(2);
                }
            }
            else
            {
                return(Mathf.CeilToInt(axisLength / 0.075f));
            }
        }
        public void CSVDataSourceReadStreamTest()
        {
            var dataStream = new FileStream(_csvDataFilePath, FileMode.Open);
            var dataSource = new CSVDataSource(dataStream);

            AssertData(dataSource);
        }
        public void CSVDataSourceReadTextReaderTest()
        {
            var textReader = File.OpenText(_csvDataFilePath);
            var dataSource = new CSVDataSource(textReader);

            AssertData(dataSource);
        }
    /// <summary>
    /// Creates the Scatterplots in a subroutine, one per frame.
    /// This was done to keep the programm from freezen when creating
    /// the Scatterplots.
    /// </summary>
    /// <param name="scatterplotPrefab"></param>
    /// <param name="dataSource"></param>
    /// <param name="dimCombinations"></param>
    /// <param name="matrixWidth"></param>
    /// <returns></returns>
    IEnumerator CreateScatterplotsCoroutine(GameObject scatterplotPrefab, CSVDataSource dataSource, int[,] dimCombinations, int matrixWidth)
    {
        for (int i = 0; dimCombinations.GetLength(0) > i; i++)
        {
            //Debug.Log("creations scatterplot" + i);
            int matrixPosX = i % matrixWidth * 2;
            int matrixPosZ = i / matrixWidth * 2;
            int xDim       = dimCombinations[i, 0];
            int yDim       = dimCombinations[i, 1];
            int zDim       = dimCombinations[i, 2];

            Transform tempTransform = transform;
            tempTransform.position += new Vector3(0f, 0.02f, 0f);

            Scatterplot scatterplot = Instantiate(scatterplotPrefab, tempTransform).GetComponent <Scatterplot>();
            scatterplot.Initialize(dataSource, matrixPosX, matrixPosZ, pointSize, xDim, yDim, zDim, bigScatterplot);
            scatterplots[i] = scatterplot;

            if (bigScatterplot)
            {
                scatterplot.transform.localScale += Vector3.one;
            }
            else
            {
                scatterplot.transform.localScale -= Vector3.one / 2;
            }

            yield return(null);
        }
    }
    // a space time cube
    View uber(CSVDataSource csvds)
    {
        // header
        // Date,Time,Lat,Lon,Base
        Gradient g = new Gradient();

        GradientColorKey[] gck = new GradientColorKey[2];
        gck[0]      = new GradientColorKey(Color.blue, 0);
        gck[1]      = new GradientColorKey(Color.red, 1);
        g.colorKeys = gck;

        // create a view builder with the point topology
        ViewBuilder vb = new ViewBuilder(MeshTopology.Points, "Uber pick up point visualisation").
                         initialiseDataView(csvds.DataCount).
                         setDataDimension(csvds["Lat"].Data, ViewBuilder.VIEW_DIMENSION.X).
                         setDataDimension(csvds["Base"].Data, ViewBuilder.VIEW_DIMENSION.Y).
                         setDataDimension(csvds["Lon"].Data, ViewBuilder.VIEW_DIMENSION.Z).
                         setSize(csvds["Base"].Data).
                         setColors(csvds["Time"].Data.Select(x => g.Evaluate(x)).ToArray());

        // initialise the view builder wiith thhe number of data points and parent GameOBject

        //Enumerable.Repeat(1f, dataSource[0].Data.Length).ToArray()
        Material mt = new Material(Shader.Find("IATK/OutlineDots"));

        //Material mt = new Material(Shader.Find("IATK/LinesShader"));
        mt.mainTexture = Resources.Load("circle-outline-basic") as Texture2D;
        mt.renderQueue = 3000;
        mt.SetFloat("_MinSize", 0.01f);
        mt.SetFloat("_MaxSize", 0.05f);

        return(vb.updateView().apply(gameObject, mt));
    }
    /// <summary>
    /// Calls the subroutine which creates the Scatterplots.
    /// </summary>
    /// <param name="dataSource"></param>
    /// <param name="dimCombinations"></param>
    private void CreateScatterplots(CSVDataSource dataSource, int[,] dimCombinations)
    {
        GameObject scatterplotPrefab = Resources.Load("Prefabs/Scatterplot") as GameObject;
        int        matrixWidth       = (int)(Mathf.Sqrt(dimCombinations.GetLength(0)) + 1);

        scatterplots = new Scatterplot[dimCombinations.GetLength(0)];
        StartCoroutine(CreateScatterplotsCoroutine(scatterplotPrefab, dataSource, dimCombinations, matrixWidth));
    }
        public void traning(string traningexamplespath)
        {
            IVersatileDataSource source = new CSVDataSource(traningexamplespath, false, CSVFormat.DecimalPoint);
            var data = new VersatileMLDataSet(source);

            data.DefineSourceColumn("num1", 0, ColumnType.Continuous);
            data.DefineSourceColumn("num2", 1, ColumnType.Continuous);
            data.DefineSourceColumn("num1", 2, ColumnType.Continuous);
            data.DefineSourceColumn("num1", 3, ColumnType.Continuous);
            data.DefineSourceColumn("num1", 4, ColumnType.Continuous);
            data.DefineSourceColumn("num1", 5, ColumnType.Continuous);
            data.DefineSourceColumn("num1", 6, ColumnType.Continuous);
            data.DefineSourceColumn("num1", 7, ColumnType.Continuous);
            data.DefineSourceColumn("num1", 8, ColumnType.Continuous);
            data.DefineSourceColumn("num1", 9, ColumnType.Continuous);
            data.DefineSourceColumn("num1", 10, ColumnType.Continuous);
            data.DefineSourceColumn("num1", 11, ColumnType.Continuous);
            ColumnDefinition outputColumn = data.DefineSourceColumn("kind", 12, ColumnType.Nominal);

            data.Analyze();
            data.DefineSingleOutputOthersInput(outputColumn);


            var model = new EncogModel(data);

            model.SelectMethod(data, MLMethodFactory.TypeFeedforward);

            // Send any output to the console.
            model.Report = new ConsoleStatusReportable();

            // Now normalize the data.  Encog will automatically determine the correct normalization
            // type based on the model you chose in the last step.
            data.Normalize();

            model.HoldBackValidation(0.3, true, 1001);

            // Choose whatever is the default training type for this model.
            model.SelectTrainingType(data);

            // Use a 5-fold cross-validated train.  Return the best method found.
            bestMethod = (IMLRegression)model.Crossvalidate(5, true);

            //Console.WriteLine(@"Training error: " + model.CalculateError(bestMethod, model.TrainingDataset));
            //Console.WriteLine(@"Validation error: " + model.CalculateError(bestMethod, model.ValidationDataset));

            // Display our normalization parameters.
            helper = data.NormHelper;
            // Console.WriteLine(helper.ToString());

            // Display the final model.
            //Console.WriteLine(@"Final model: " + bestMethod);
            source.Close();

            saveNetwork("save.eg");
            savehelper("helper.hp");
            //EncogFramework.Instance.Shutdown();
        }
Beispiel #13
0
    public void Awake()
    {
        scatterplotDropdown = GameObject.FindGameObjectWithTag("ScatterplotDropdown").GetComponent <Dropdown>();
        dataDropdown        = GameObject.FindGameObjectWithTag("DataDropdown").GetComponent <Dropdown>();
        clipboardText       = GameObject.FindGameObjectWithTag("InfoText").GetComponent <Text>();
        dataSource          = gameObject.AddComponent <CSVDataSource>();

        //loadFilesFromDirectory();
        scatterplotDropdown.value = 6;
    }
        private void AssertData(CSVDataSource dataSource)
        {
            var csvData = dataSource.FetchData();

            Assert.NotNull(csvData);
            var castedData = csvData.Data as string[][];

            Assert.NotNull(castedData);
            Assert.AreEqual(11033, castedData.Count());
            Assert.AreEqual("TOA5", castedData[0][0]);
        }
    /// <summary>
    /// Initializes the ScatterplotMatrix.
    /// Should always be called after creating this component.
    /// </summary>
    /// /// <param name="dataSource"></param>
    /// /// <param name="dimCombinations"></param>
    /// /// <param name="pointSize"></param>
    public void Initialize(CSVDataSource dataSource, int[,] dimCombinations, float pointSize, bool bigScatterplot)
    {
        foreach (int dimi in dimCombinations)
        {
            //Debug.Log(dimi.ToString());
        }
        this.pointSize      = pointSize;
        this.bigScatterplot = bigScatterplot;

        CreateScatterplots(dataSource, dimCombinations);
    }
Beispiel #16
0
        public VersatileMLDataSet LoadDataSetFromCsv(string filename)
        {
            var csvFormatSpec = new CSVFormat('.', '\t');
            var dataSource    = new CSVDataSource(filename, headers: true, format: csvFormatSpec);

            var dataSet = new VersatileMLDataSet(dataSource)
            {
                NormHelper = { Format = csvFormatSpec }
            };

            return(dataSet);
        }
Beispiel #17
0
 public override int NumberOfLabels()
 {
     if (IsDiscreet())
     {
         CSVDataSource csvdatasoure = (CSVDataSource)dataSource;
         return(csvdatasoure.TextualDimensionsListReverse[attributeFilter.Attribute].Count);
     }
     else
     {
         return(4);
     }
 }
Beispiel #18
0
    void CreateDataSource(string content)
    {
        if (DataSource != null)
        {
            Destroy(DataSource);
        }

        DataSource = gameObject.AddComponent <CSVDataSource>();
        DataSource.Load(content);

        DataSourceLoaded.Invoke(DataSource);
    }
Beispiel #19
0
    /// <summary>
    /// Initializes the ScatterplotMatrix.
    /// Should always be called after creating this component.
    /// </summary>
    /// <param name="dataSource"></param>
    /// <param name="matrixPosX"></param>
    /// <param name="matrixPosZ"></param>
    /// <param name="pointSize"></param>
    /// <param name="xDim"></param>
    /// <param name="yDim"></param>
    /// <param name="zDim"></param>
    public void Initialize(CSVDataSource dataSource, float matrixPosX, float matrixPosZ, float pointSize, int xDim, int yDim, int zDim)
    {
        this.dataSource = dataSource;
        this.pointSize  = pointSize;
        this.xDim       = xDim;
        this.yDim       = yDim;
        this.zDim       = zDim;

        float posOffset = 1;

        InitializeAxesLabel();
        CreateDataPoints();
        transform.Translate(new Vector3(matrixPosX + posOffset * matrixPosX, 0, matrixPosZ + posOffset * matrixPosZ));
    }
Beispiel #20
0
    // This is needed to create the buttons if the script is disabled
    protected void Initialise()
    {
        if (dataSource == null)
        {
            dataSource = ChartManager.Instance.DataSource;
        }

        buttons = new List <MenuButton>();
        isOpen  = false;

        CreateButtons();
        CloseButtons(0);

        isInitialised = true;
    }
Beispiel #21
0
    protected virtual List <string> GetAttributesList()
    {
        if (dataSource == null)
        {
            dataSource = ChartManager.Instance.DataSource;
        }

        List <string> dimensions = new List <string>();

        for (int i = 0; i < dataSource.DimensionCount; ++i)
        {
            dimensions.Add(dataSource[i].Identifier);
        }
        return(dimensions);
    }
    void CreateDataSource(string content)
    {
        if (DataSource != null)
        {
            Destroy(DataSource);
        }

        DataSource = gameObject.AddComponent <CSVDataSource>();
        DataSource.Load(content);

        CreateVisualization(DataSource);

        StartCoroutine(CreateTableCoroutine());
        //init bounding box if datasource loaded
        Boundingbox?.Init();
    }
Beispiel #23
0
    public void OnDataSourceLoaded(CSVDataSource source)
    {
        foreach (Transform child in transform)
        {
            DestroyImmediate(child.gameObject);
        }

        Filters.AddRange(source.Select(x => new DimensionFilter {
            Attribute = x.Identifier
        }));

        //foreach (var filter in Filters)
        //    Instantiate(DimensionObj, transform)?.Init(this, filter);

        Dropdown.ClearOptions();
        Dropdown.AddOptions(Filters.Select(x => x.Attribute).ToList());
    }
Beispiel #24
0
    // Use this for initialization
    void Start()
    {
        barList = new List <GameObject>();
        int count = 0;

        foreach (TextAsset ta in datasets)
        {
            GameObject go = new GameObject("BarCharts-" + count);
            go.transform.parent = this.transform;

            CSVDataSource csvdata = createCSVDataSource(ta.text, go);

            CreateBarchart(csvdata, go, count);
            count++;
            barList.Add(go);
        }
    }
Beispiel #25
0
        public void TestCSVDataSource_Positive()
        {
            var source = new CSVDataSource();

            source.Load();

            var expected = new List <string>()
            {
                "name,address_line1,address_line2",
                "Dave,Market Street,London",
                "John,Queen Street,York"
            };

            var actual = source.Data;

            CollectionAssert.AreEqual(expected, actual);
        }
Beispiel #26
0
    public void DisplayTrajectories()
    {
        // Assignments data parsing
        List <List <int> > assignments = ParseListOfListOfInts(assignmentsData);

        // Trajectories files data parsing
        List <String> fileNames = ParseListOfString(filesData);

        // Create Trajectories objects
        int nb_files = assignments.Count;

        int[] assignments_counter = new int[nb_files];
        Array.Clear(assignments_counter, 0, nb_files); // Fills array with 0s
        for (int i = 0; i < assignments.Count; i++)
        {
            GameObject t = Instantiate(trajectoryPrefab, new Vector3(assignments_counter[assignments[i][0]]++, assignments[i][0], 0), Quaternion.identity);
            t.transform.parent = transform;

            // upload CSV file
            CSVDataSource dataSource = t.transform.Find("[IATK] New Data Source").GetComponent <CSVDataSource>();
            dataSource.data = Resources.Load(fileNames[i]) as TextAsset;

            // set up visualisation
            Visualisation dataVisualisation = t.transform.Find("[IATK] New Visualisation").GetComponent <Visualisation>();
            dataVisualisation.dataSource = dataSource;
            dataVisualisation.CreateVisualisation(AbstractVisualisation.VisualisationTypes.SCATTERPLOT);
            dataVisualisation.colour     = randomColorFromInt(assignments[i][0]);
            dataVisualisation.xDimension = new DimensionFilter {
                Attribute = "x"
            };
            dataVisualisation.yDimension = new DimensionFilter {
                Attribute = "y"
            };
            dataVisualisation.zDimension = new DimensionFilter {
                Attribute = "z"
            };
            dataVisualisation.geometry         = AbstractVisualisation.GeometryType.Lines;
            dataVisualisation.linkingDimension = "TrajectoryID";
            dataVisualisation.theVisualizationObject.UpdateVisualisation(AbstractVisualisation.PropertyType.X);
            dataVisualisation.theVisualizationObject.UpdateVisualisation(AbstractVisualisation.PropertyType.Y);
            dataVisualisation.theVisualizationObject.UpdateVisualisation(AbstractVisualisation.PropertyType.Z);
            dataVisualisation.theVisualizationObject.UpdateVisualisation(AbstractVisualisation.PropertyType.GeometryType);
            dataVisualisation.theVisualizationObject.UpdateVisualisation(AbstractVisualisation.PropertyType.LinkingDimension);
        }
    }
    /// <summary>
    /// Creates the Scatterplots in a subroutine, one per frame.
    /// This was done to keep the programm from freezen when creating
    /// the Scatterplots.
    /// </summary>
    /// <param name="scatterplotPrefab"></param>
    /// <param name="dataSource"></param>
    /// <param name="dimCombinations"></param>
    /// <param name="matrixWidth"></param>
    /// <returns></returns>
    IEnumerator CreateScatterplotsCoroutine(GameObject scatterplotPrefab, CSVDataSource dataSource, int[,] dimCombinations, int matrixWidth)
    {
        for (int i = 0; dimCombinations.GetLength(0) > i; ++i)
        {
            int matrixPosX = i % matrixWidth * 2;
            int matrixPosZ = i / matrixWidth * 2;
            int xDim       = dimCombinations[i, 0];
            int yDim       = dimCombinations[i, 1];
            int zDim       = dimCombinations[i, 2];

            Scatterplot scatterplot = Instantiate(scatterplotPrefab, transform).GetComponent <Scatterplot>();
            scatterplot.Initialize(dataSource, matrixPosX, matrixPosZ, pointSize, xDim, yDim, zDim);
            scatterplots[i] = scatterplot;

            scatterplot.transform.localScale += Vector3.one;

            yield return(null);
        }
    }
Beispiel #28
0
        static void Main(string[] args)
        {
            var network = new BasicNetwork();

            network.AddLayer(new BasicLayer(2));
            network.AddLayer(new BasicLayer(3));
            network.AddLayer(new BasicLayer(1));
            network.Structure.FinalizeStructure();
            network.Reset();

            var trainingDataSource = new CSVDataSource(@"Data\training.csv", true, ',');
            //var validationDataSource = new CSVDataSource(@"Data\validation.csv", true, ',');

            var trainingSet = new VersatileMLDataSet(trainingDataSource);

            //var validationSet = new VersatileMLDataSet(validationDataSource);

            trainingSet.Analyze();
            trainingSet.Normalize();

            var training = new ResilientPropagation(network, trainingSet);

            int epoch = 1;

            do
            {
                training.Iteration();
                Console.WriteLine($"Epoch #{epoch}. Error: {training.Error}");
                epoch++;
            }while (training.Error > 0.01);

            training.FinishTraining();

            Console.WriteLine("Neural Network Results:");

            foreach (var pair in trainingSet)
            {
                var output = network.Compute(pair.Input);
                Console.WriteLine($"{pair.Input[0]},{pair.Input[1]}, actual={output[0]}, ideal={pair.Ideal}");
            }

            EncogFramework.Instance.Shutdown();
        }
    /// <summary>
    /// Returns the data from the CSV-File which this DataPoint represents.
    /// The first dimension holds the three columns.
    /// The second dimension holds the columns identifier in index 0 and the value in index 1.
    /// </summary>
    /// <returns></returns>
    public string[,] GetData()
    {
        CSVDataSource dataSource = scatterplot.dataSource;
        int           xDim       = scatterplot.xDim;
        int           yDim       = scatterplot.yDim;
        int           zDim       = scatterplot.zDim;

        string[,] data = new string[3, 2];

        data[0, 0] = dataSource[xDim].Identifier;
        data[0, 1] = dataSource.getOriginalValue(dataSource[xDim].Data[index], dataSource[xDim].Identifier).ToString();

        data[1, 0] = dataSource[yDim].Identifier;
        data[1, 1] = dataSource.getOriginalValue(dataSource[yDim].Data[index], dataSource[yDim].Identifier).ToString();

        data[2, 0] = dataSource[zDim].Identifier;
        data[2, 1] = dataSource.getOriginalValue(dataSource[zDim].Data[index], dataSource[zDim].Identifier).ToString();

        return(data);
    }
Beispiel #30
0
 /// <summary>
 /// Diese Methode färbt den DataPoint falls er selektiert wurde ein.
 /// </summary>
 public void colorSelected(CSVDataSource dataSource)
 {
     if (!(dataSource.selectedIndicies is null))
     {
         Renderer renderer = this.GetComponent <Renderer>();
         if (dataSource.selectedIndicies.Contains(index))
         {
             Debug.LogError(dataSource.selectionColor);
             if (dataSource.selectionColor != null)
             {
                 color = Utilities.HexToColor(dataSource.selectionColor);
                 renderer.material.color = color;
             }
             else
             {
                 color = Color.black;
                 renderer.material.color = color;
             }
         }
     }
 }