Esempio n. 1
0
        void UpdatePortInput(ShaderPort port)
        {
            var inputView = m_PortInputContainer.OfType <PortInputView>().First(x => Equals(x.slot, port.slot));

            var currentRect = new Rect(inputView.style.positionLeft, inputView.style.positionTop, inputView.style.width, inputView.style.height);
            var targetRect  = new Rect(0.0f, 0.0f, port.layout.width, port.layout.height);

            targetRect = port.ChangeCoordinatesTo(inputView.shadow.parent, targetRect);
            var centerY = targetRect.center.y;
            var centerX = targetRect.xMax - currentRect.width;

            currentRect.center = new Vector2(centerX, centerY);

            inputView.style.positionTop = currentRect.yMin;
            var newHeight = inputView.parent.layout.height;

            foreach (var element in inputView.parent.Children())
            {
                newHeight = Mathf.Max(newHeight, element.style.positionTop + element.layout.height);
            }
            if (Math.Abs(inputView.parent.style.height - newHeight) > 1e-3)
            {
                inputView.parent.style.height = newHeight;
            }
        }
Esempio n. 2
0
        public bool FindPort(SlotReference slotRef, out ShaderPort port)
        {
            port = inputContainer.Query <ShaderPort>().ToList()
                   .Concat(outputContainer.Query <ShaderPort>().ToList())
                   .First(p => p.slot.slotReference.Equals(slotRef));

            return(port != null);
        }
Esempio n. 3
0
        public static Port Create(Orientation orientation, Direction direction, Type type, IEdgeConnectorListener connectorListener)
        {
            var port = new ShaderPort(orientation, direction, type)
            {
                m_EdgeConnector = new EdgeConnector <Edge>(connectorListener),
            };

            port.AddManipulator(port.m_EdgeConnector);
            return(port);
        }
Esempio n. 4
0
        public static Port Create(MaterialSlot slot, IEdgeConnectorListener connectorListener)
        {
            var port = new ShaderPort(Orientation.Horizontal, slot.isInputSlot ? Direction.Input : Direction.Output, null)
            {
                m_EdgeConnector = new EdgeConnector <Edge>(connectorListener),
            };

            port.AddManipulator(port.m_EdgeConnector);
            port.slot        = slot;
            port.portName    = slot.displayName;
            port.visualClass = slot.concreteValueType.ToClassName();
            return(port);
        }
Esempio n. 5
0
        void AddSlots(IEnumerable <MaterialSlot> slots)
        {
            foreach (var slot in slots)
            {
                if (slot.hidden)
                {
                    continue;
                }

                var port = ShaderPort.Create(slot, m_ConnectorListener);
                if (slot.isOutputSlot)
                {
                    outputContainer.Add(port);
                }
                else
                {
                    inputContainer.Add(port);
                }
            }
        }
        void AddSlots(IEnumerable <MaterialSlot> slots)
        {
            foreach (var slot in slots)
            {
                if (slot.hidden)
                {
                    continue;
                }

                var port = ShaderPort.Create(Orientation.Horizontal, slot.isInputSlot ? Direction.Input : Direction.Output, null, m_ConnectorListener);
                port.portName    = slot.displayName;
                port.userData    = slot;
                port.visualClass = slot.concreteValueType.ToClassName();

                if (slot.isOutputSlot)
                {
                    outputContainer.Add(port);
                }
                else
                {
                    inputContainer.Add(port);
                }
            }
        }