Ejemplo n.º 1
0
            InputVertexCacheWalker(TraversalCache cache, int slotIndex, TInputPort port, TraversalCache.Hierarchy hierarchy, bool traverseAllPorts)
            {
                m_Cache = cache;

                m_SlotIndex        = slotIndex;
                m_Port             = port;
                m_CurrentIndex     = -1;
                m_TraverseAllPorts = traverseAllPorts;
                m_Mask             = cache.GetMask(hierarchy);

                var slot             = m_Cache.OrderedTraversal[slotIndex];
                var count            = 0;
                var parentTableIndex = slot.ParentTableIndex;

                for (var i = 0; i < slot.ParentCount; i++)
                {
                    var cacheConn = m_Cache.ParentTable[parentTableIndex + i];
                    if ((m_TraverseAllPorts || cacheConn.InputPort.Equals(m_Port)) &&
                        (cacheConn.TraversalFlags & m_Mask) != 0)
                    {
                        count++;
                    }
                }

                Count = count;
            }
Ejemplo n.º 2
0
 public InputConnectionCacheWalker GetParentConnectionsByPort(TInputPort port, TraversalCache.Hierarchy hierarchy = TraversalCache.Hierarchy.Traversal)
 => new InputConnectionCacheWalker(m_Cache, m_SlotIndex, port, hierarchy);
Ejemplo n.º 3
0
 internal InputVertexCacheWalker(TraversalCache cache, int slotIndex, TInputPort port, TraversalCache.Hierarchy hierarchy)
     : this(cache, slotIndex, port, hierarchy, false)
 {
 }
Ejemplo n.º 4
0
 internal NodeEnumeratorByPort(ConnectionEnumerator parent, TInputPort filter)
 {
     m_Walker = parent;
     m_Filter = filter;
 }