internal Enumerator(HpLinkedRange *range, NativeArray <Velocity> inputVelocities, float timeStep)
            {
                m_Range  = range;
                m_Reader = new HpBlockStreamReader(m_Range);

                m_InputVelocities = inputVelocities;
                m_TimeStep        = timeStep;

                unsafe
                {
                    m_Current = default;
                }
            }
            public bool MoveNext()
            {
                if (!m_Reader.HasItems && m_Range->m_next != null)
                {
                    m_Range  = m_Range->m_next;
                    m_Reader = new HpBlockStreamReader(m_Range);
                }

                if (m_Reader.HasItems)
                {
                    // Read the size first
                    int size = m_Reader.Read <int>();
                    m_Current = new CollisionEventDataRef((CollisionEventData *)(m_Reader.Peek()));
                    m_Reader.Advance(size);
                    return(true);
                }
                return(false);
            }
Beispiel #3
0
            public bool MoveNext()
            {
                if (!m_Reader.HasItems && m_Range->m_next != null)
                {
                    m_Range  = m_Range->m_next;
                    m_Reader = new HpBlockStreamReader(m_Range);
                }

                if (m_Reader.HasItems)
                {
                    var eventData = (TriggerEventData *)m_Reader.Peek();

                    Current = eventData->CreateTriggerEvent();

                    m_Reader.Advance(sizeof(TriggerEventData));
                    return(true);
                }
                return(false);
            }
Beispiel #4
0
 internal Enumerator(HpLinkedRange *range)
 {
     m_Range  = range;
     m_Reader = new HpBlockStreamReader(m_Range);
     Current  = default;
 }