Beispiel #1
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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);
        }
Beispiel #7
0
        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;
        }
Beispiel #8
0
        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));
        }
Beispiel #9
0
        internal override void RecalcHeight(ScaleSettings scaling)
        {
            var h = scaling.titleHeight + scaling.aiLinkBodyHeight;

            viewArea.height = h;
        }
Beispiel #10
0
        internal virtual void RecalcHeight(ScaleSettings scaling)
        {
            var h = scaling.titleHeight;

            viewArea.height = h;
        }
Beispiel #11
0
 internal Vector3 ConnectorAnchorIn(ScaleSettings scaling)
 {
     return(new Vector3(this.viewArea.x, this.viewArea.y + (scaling.titleHeight * 0.5f), 0f));
 }