internal bool Zoom(Vector2 position, float newScale, ScaleSettings scaling) { var settings = UserSettings.instance; newScale = Mathf.Clamp(newScale, settings.zoomMin, settings.zoomMax); //Due to the need for rounding to whole numbers (as Unity cannot render properly otherwise) we have to adjust the scale newScale = Mathf.Round(settings.snapCellSize * newScale) / settings.snapCellSize; var deltaScale = this.zoom - newScale; if (deltaScale * deltaScale < 0.000001f) { return(false); } var deltaPan = (position * (deltaScale / this.zoom)); var count = views.Count; for (int i = 0; i < count; i++) { views[i].Scale(this.zoom, newScale); views[i].viewArea.position += deltaPan; } this.offset = (this.offset.Scale(this.zoom, newScale) + deltaPan).Round(); scaling.UpdateScale(newScale); this.zoom = newScale; SnapAllToGrid(); return(true); }
internal SelectorLayout(SelectorView selectorView, float windowTop, ScaleSettings scaling) : base(selectorView, windowTop, scaling) { _selectorView = selectorView; float leftMost = _localViewRange.xMin; float rightMost = _localViewRange.xMax; _dragArea = new XRange(leftMost, scaling.dragHandleWidth); leftMost += scaling.dragHandleWidth; rightMost -= scaling.anchorAreaWidth; _anchorArea = new XRange(rightMost, scaling.anchorAreaWidth); _toggleArea = new XRange(rightMost, scaling.toggleAreaWidth); if (EditorApplication.isPlaying) { var remainder = rightMost - leftMost; var scoreAreaWidth = remainder * 0.25f; rightMost -= scoreAreaWidth; _scoreArea = new XRange(rightMost, scoreAreaWidth); } _contentArea = new XRange(leftMost, rightMost - leftMost); }
internal AILinkLayout(AILinkView linkView, float windowTop, ScaleSettings scaling) : base(linkView, windowTop, scaling) { var zoom = scaling.scale; _containerHeight = scaling.aiLinkBodyHeight; _nameArea = new XRange(_localViewRange.xMin + (10f * zoom), _localViewRange.width - ((_showAreaWidth + 10f) * zoom)); _showArea = new XRange(_nameArea.xMax, _showAreaWidth * zoom); }
internal bool Zoom(Vector2 position, float zoom, ScaleSettings scaling) { if (this.canvas.Zoom(position, zoom, scaling)) { _undoRedo.RegisterLayoutChange(ChangeTypes.Zoom); this.isDirty = true; return(true); } return(false); }
internal float GetHeight(ScaleSettings scaling) { var height = scaling.qualifierHeight + scaling.actionHeight; if (this.isExpanded) { var sq = this.qualifier as ICompositeVisualizer; height += sq.children.Count * scaling.scorerHeight; } return(height); }
public ViewLayout(TopLevelView view, float windowTop, ScaleSettings scaling) { _viewRect = view.viewArea; _scaling = scaling; _localViewRange = new XRange(scaling.selectorResizeMargin, _viewRect.xMax - _viewRect.xMin - (2f * scaling.selectorResizeMargin)); var ymin = Mathf.Max(_viewRect.y, windowTop); _leftResizeArea = new Rect(_viewRect.xMin, ymin, scaling.selectorResizeMargin, _viewRect.height); _rightResizeArea = new Rect(_viewRect.xMax - scaling.selectorResizeMargin, ymin, scaling.selectorResizeMargin, _viewRect.height); }
internal override void RecalcHeight(ScaleSettings scaling) { var h = scaling.titleHeight; var qcount = this.qualifierViews.Count; for (int i = 0; i < qcount; i++) { h += this.qualifierViews[i].GetHeight(scaling); } h += this.defaultQualifierView.GetHeight(scaling); viewArea.height = h; }
internal Vector3 ConnectorAnchorOut(int qualifierIdx, ScaleSettings scaling) { var ypos = scaling.titleHeight; //qualifierIdx > count in case of default qualifier var idxThreshold = Math.Min(qualifierIdx, this.qualifierViews.Count); for (int i = 0; i < idxThreshold; i++) { ypos += this.qualifierViews[i].GetHeight(scaling); } ypos += (qualifierIdx < this.qualifierViews.Count) ? this.qualifierViews[qualifierIdx].GetHeight(scaling) : this.defaultQualifierView.GetHeight(scaling); return(new Vector3( this.viewArea.x + this.viewArea.width, this.viewArea.y + ypos - (scaling.actionHeight * 0.5f), 0f)); }
internal override void RecalcHeight(ScaleSettings scaling) { var h = scaling.titleHeight + scaling.aiLinkBodyHeight; viewArea.height = h; }
internal virtual void RecalcHeight(ScaleSettings scaling) { var h = scaling.titleHeight; viewArea.height = h; }
internal Vector3 ConnectorAnchorIn(ScaleSettings scaling) { return(new Vector3(this.viewArea.x, this.viewArea.y + (scaling.titleHeight * 0.5f), 0f)); }