Пример #1
0
    void CalculateTicksScale(DataBinding.DataObject srcData)
    {
        float range = AttributeRange.y - AttributeRange.x;

        if (srcData.Metadata[axisId].binCount > range + 2)
        {
            ticksScaleFactor = 1.0f / (srcData.Metadata[axisId].binCount / 10);
        }
        else if (range < 20)
        {
            // each tick mark represents one increment
            ticksScaleFactor = 1;
        }
        else if (range < 50)
        {
            ticksScaleFactor = 5;
        }
        else if (range < 200)
        {
            // each tick mark represents ten increment
            ticksScaleFactor = 10;
        }
        else if (range < 600)
        {
            ticksScaleFactor = 50;
        }
        else if (range < 3000)
        {
            ticksScaleFactor = 100;
        }
        else
        {
            ticksScaleFactor = 500;
        }
    }
Пример #2
0
    // takes a dimension name and an index of a datapoint, and returns a string value for that dimension
    string StringValFromDataObj(DataBinding.DataObject dataObj, string dimensionName, int index)
    {
        float  xval    = dataObj.getOriginalDimension(dimensionName)[index];
        string xvalstr = xval.ToString();

        if (dataObj.TypeDimensionDictionary1[dataObj.dimensionToIndex(dimensionName)] == "string")
        {
            xvalstr = dataObj.TextualDimensions[xval];
        }
        ;
        return(xvalstr);
    }
Пример #3
0
    public void Init(DataBinding.DataObject srcData, int idx, bool isPrototype = false)
    {
        SourceIndex = idx;
        axisId      = idx;
        name        = "axis " + srcData.indexToDimension(idx);


        AttributeRange = srcData.DimensionsRange[axisId];
        label.text     = srcData.Identifiers[idx];
        UpdateRangeText();

        this.isPrototype = isPrototype;

        CalculateTicksScale(srcData);
        UpdateTicks();
    }
Пример #4
0
    void Start()
    {
        sceneAxes  = new List <Axis>();
        dataObject = new DataBinding.DataObject(sourceData.text, metadata);

        // setup default visual settings

        VisualisationAttributes.Instance.sizes = Enumerable.Range(0, SceneManager.Instance.dataObject.DataPoints).Select(_ => 1f).ToArray();

        List <float> categories   = SceneManager.Instance.dataObject.getNumberOfCategories(VisualisationAttributes.Instance.ColoredAttribute);
        int          nbCategories = categories.Count;

        Color[] palette = Colors.generateColorPalette(nbCategories);

        Dictionary <float, Color> indexCategoryToColor = new Dictionary <float, Color>();

        for (int i = 0; i < categories.Count; i++)
        {
            indexCategoryToColor.Add(categories[i], palette[i]);
        }

        VisualisationAttributes.Instance.colors = Colors.mapColorPalette(SceneManager.Instance.dataObject.getDimension(VisualisationAttributes.Instance.ColoredAttribute), indexCategoryToColor);

        // create the axis
        if (createAxisShelf)
        {
            for (int i = 0; i < dataObject.Identifiers.Length; ++i)
            {
                Vector3    v   = new Vector3(1.352134f - (i % 7) * 0.35f, 1.506231f - (i / 7) / 2f, 0f);// -0.4875801f);
                GameObject obj = (GameObject)Instantiate(axisPrefab);
                obj.transform.position = v;
                Axis axis = obj.GetComponent <Axis>();
                axis.Init(dataObject, i, false);
                axis.InitOrigin(v, obj.transform.rotation);
                axis.tag = "Axis";

                AddAxis(axis);
            }
        }
    }
Пример #5
0
 public void setDebug(string dbg)
 {
     DataBinding.DataObject srcData = SceneManager.Instance.dataObject;
     label.text = srcData.Identifiers[axisId] + "(" + dbg + ")";
 }