protected virtual void Presenter_DataUpdated(object sender, DataPresenterEventArgs e) { // Only rebuild when not called from editor if (_fromEditor) { return; } _rebuildState |= RebuildState.Visualization; Rebuild(); }
protected virtual void SetSize(Vector3 size) { if (_size == size) { return; } _size = size; if (!_initialized) { return; } _rebuildState |= RebuildState.AxisSetup; Rebuild(); }
protected virtual void DestroyAxisViews() { if (_axisViews == null) { return; } foreach (var axisView in _axisViews) { if (axisView != null) { DestroyImmediate(axisView.gameObject); } } _axisViews = null; _rebuildState |= RebuildState.AxisSetup; }
/// <summary> /// Rebuilds the Visualization and Axes (if visisble) /// </summary> public virtual void Rebuild() { // If this was called from the editor, ignore lazyRebuild and // rebuild immediately, because update is never called. if (_fromEditor) { _rebuildState = RebuildState.All; Rebuild_Internal(); return; } _rebuildState |= RebuildState.Visualization | RebuildState.Axis; // If lazyRebuild is true, don't rebuild immediately, but just remember that we need to rebuild // next time update is called. if (!_lazyRebuild) { Rebuild_Internal(); } }
protected virtual void Rebuild_Internal() { if (_rebuildState.HasFlag(RebuildState.Visualization)) { RebuildVisualization(); } if (_showAxes && _rebuildState.HasFlag(RebuildState.Axis)) { RebuildAxes(); } // if this was triggered by the editor, else if (_fromEditor && _axisViews != null) { DestroyAxisViews(); } _rebuildState = RebuildState.Nothing; OnRebuildFinished(); }