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(); }
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)); }
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)); }
/// <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); }
/// <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; } } }
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)); }
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(); }
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)); }
/// <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; }
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); }
public virtual void Initialize(GenericDataPresenter presenter, GenericAxisView axisViewPrefab = null, GenericVisualizationStyle style = null, Mesh dataItemMesh = null) { _dataItemMesh = dataItemMesh; base.Initialize(presenter, axisViewPrefab, style); }
public virtual void Initialize(GenericDataPresenter presenter, BaseVisualizationView visualization) { _presenter = presenter; _visualization = visualization; }