public virtual void Initialize(GenericDataPresenter presenter, GenericAxisView axisViewPrefab = null, GenericVisualizationStyle style = null)
        {
            if (presenter == null)
            {
                throw new ArgumentNullException("Presenter can't be null");
            }
            if (_presenter != null)
            {
                _presenter.DataUpdated -= Presenter_DataUpdated;
            }

            _initialized            = true;
            _fromEditor             = false;
            _presenter              = presenter;
            _presenter.DataUpdated += Presenter_DataUpdated;
            _axisViewPrefab         = axisViewPrefab;
            // if there is no axis prefab, there can be no axis views
            if (_axisViewPrefab == null)
            {
                _showAxes = false;
            }
            // Destroy initial axis views because references to axis presenters somehow gets lost
            // when started from the editor, so we just rebuild them completely
            DestroyAxisViews();
            _style = style;

            Rebuild_Internal();
        }
示例#2
0
 public static float GetItemValue(GenericDataPresenter presenter, int dimIndex, int itemIndex, bool normalize = false, bool relative = false)
 {
     if (relative)
     {
         return(GetItemValueRelative(presenter, dimIndex, itemIndex, normalize));
     }
     return(GetItemValueAbsolute(presenter, dimIndex, itemIndex, normalize));
 }
示例#3
0
        public static string GetItemString(GenericDataPresenter presenter, int dimIndex, int itemIndex)
        {
            var dim    = presenter[dimIndex];
            var numDim = dim as INumericalDimension;

            if (numDim != null)
            {
                return(numDim.ConvertToFloat(itemIndex).ToString());
            }
            return(dim.GetStringValue(itemIndex));
        }
示例#4
0
        /// <summary>
        /// Removes the specified data presenter from this lin group.
        /// </summary>
        /// <param name="presenter">The presenter that should be removed.</param>
        /// <returns>true if the presenter was removed otherwise false.</returns>
        public virtual bool Remove(GenericDataPresenter presenter)
        {
            var tmp = new List <GenericDataPresenter>(_linkedPresenters);

            if (!tmp.Remove(presenter))
            {
                return(false);
            }
            _linkedPresenters           = tmp.ToArray();
            presenter.HighlightChanged -= Presenter_HighlightChanged;
            return(true);
        }
示例#5
0
 /// <summary>
 /// Called whenver the highlight of a presenter contained in this link group has changed.
 /// Notifies all other presenters of the change so they can sync their state.
 /// </summary>
 /// <param name="sender">The presenter which has changed.</param>
 /// <param name="itemIndex">The index of the value which hightlight has changed.</param>
 protected virtual void Presenter_HighlightChanged(GenericDataPresenter sender, int itemIndex)
 {
     foreach (var p in _linkedPresenters)
     {
         if (p != sender)
         {
             p.HighlightChanged -= Presenter_HighlightChanged;
             p.ToogleItemHighlight(itemIndex);
             p.HighlightChanged += Presenter_HighlightChanged;
         }
     }
 }
示例#6
0
        public static float GetItemValueAbsolute(GenericDataPresenter presenter, int dimIndex, int itemIndex, bool normalize = false)
        {
            var dim    = presenter[dimIndex];
            var numDim = dim as INumericalDimension;

            if (numDim != null)
            {
                if (normalize)
                {
                    return(numDim.ConvertToNormalizedFloat(itemIndex));
                }
                return(numDim.ConvertToFloat(itemIndex));
            }
            return((itemIndex - presenter.SelectedMinItem) / (presenter.SelectedMaxItem - presenter.SelectedMinItem));
        }
示例#7
0
 public virtual void Initialize(GenericDataPresenter presenter, GenericAxisView axisViewPrefab)
 {
     if (presenter == null)
         throw new ArgumentException("Presenter can't be null");
     _isInitialized = true;
     if (_presenter != null)
         _presenter.DataUpdated -= DataPresenter_DataUpdated;
     _presenter = presenter;
     _axisViewPrefab = axisViewPrefab;
     _fromEditor = false;
     if (_presenter != null)
         _presenter.DataUpdated += DataPresenter_DataUpdated;
     DestroyAxisView();
     RebuildAxis();
 }
示例#8
0
        public static float GetItemValueRelative(GenericDataPresenter presenter, int dimIndex, int itemIndex, bool normalize = false)
        {
            var dim    = presenter[dimIndex];
            var numDim = dim as INumericalDimension;

            if (numDim != null)
            {
                float v = numDim.ConvertToFloat(itemIndex);
                v -= numDim.MinimumFloatValue;
                if (normalize)
                {
                    return(v / (numDim.MaximumFloatValue - numDim.MinimumFloatValue));
                }
                return(v);
            }
            return((itemIndex - presenter.SelectedMinItem) / (presenter.SelectedMaxItem - presenter.SelectedMinItem));
        }
示例#9
0
        /// <summary>
        /// Adds the specifief data presenter to this LinkGroup.
        /// </summary>
        /// <param name="presenter">The data presenters that should be added.</param>
        public virtual void Add(GenericDataPresenter presenter)
        {
            if (presenter == null)
            {
                throw new ArgumentException("presenter can't be null");
            }
            if (_linkedPresenters == null && _linkedPresenters.Length == 0)
            {
                _linkedPresenters = new GenericDataPresenter[] { presenter };
                return;
            }
            var newList = new GenericDataPresenter[_linkedPresenters.Length + 1];

            Array.Copy(_linkedPresenters, 0, newList, 0, _linkedPresenters.Length);
            newList[_linkedPresenters.Length] = presenter;
            _linkedPresenters           = newList;
            presenter.HighlightChanged += Presenter_HighlightChanged;
        }
示例#10
0
        public static float GetGlobalMaximum(GenericDataPresenter presenter)
        {
            float max = float.MinValue;

            foreach (var dim in presenter.Dimensions)
            {
                var numDim = dim as INumericalDimension;
                if (numDim == null)
                {
                    continue;
                }
                if (numDim.MaximumFloatValue > max)
                {
                    max = numDim.MaximumFloatValue;
                }
            }
            return(max);
        }
示例#11
0
 public virtual void Initialize(GenericDataPresenter presenter, GenericAxisView axisViewPrefab = null, GenericVisualizationStyle style = null, Mesh dataItemMesh = null)
 {
     _dataItemMesh = dataItemMesh;
     base.Initialize(presenter, axisViewPrefab, style);
 }
示例#12
0
 public virtual void Initialize(GenericDataPresenter presenter, BaseVisualizationView visualization)
 {
     _presenter     = presenter;
     _visualization = visualization;
 }