public void Add(T value) { m_Latest = new TimedQueueItem <T>() { Value = value, Time = Time.time }; m_Queue.Enqueue(m_Latest); Prune(); }
public void Add(T value) { latest = new TimedQueueItem <T>() { value = value, time = Time.time }; queue.Enqueue(latest); Prune(); }
private void OnRenderObject() { UpdateText(); if (FitBounds) { ResetBounds(); } float minTime = Mathf.Infinity; float maxTime = Mathf.NegativeInfinity; bool isFlatGraph = true; bool drawGraph = false; foreach (Line line in m_Lines) { if (line.IsDrawable) { drawGraph = true; float min = line.Buffer.Min; float max = line.Buffer.Max; m_MinVal = Mathf.Min(m_MinVal, min); m_MaxVal = Mathf.Max(m_MaxVal, max); minTime = Mathf.Min(minTime, line.Buffer.Start); maxTime = Mathf.Max(maxTime, line.Buffer.End); line.IsFlat = min == max; isFlatGraph = isFlatGraph && line.IsFlat; } } if (drawGraph) { m_yScale = 0; if (!isFlatGraph) { m_TextMin.text = m_MinVal.ToString(c_Format); m_TextMax.text = m_MaxVal.ToString(c_Format); m_yScale = m_DrawArea.height / (m_MaxVal - m_MinVal); } m_SB.Clear(); CreateLineMaterial(); lineMaterial.SetPass(0); GL.PushMatrix(); GL.MultMatrix(transform.localToWorldMatrix); GL.Begin(GL.LINES); foreach (Line line in m_Lines) { if (line.IsDrawable) { GL.Color(line.Color); string sVal = line.Buffer.Current.ToString(c_Format); if (line.IsFlat) { float y = isFlatGraph ? m_yCenter : (line.Buffer.Current - m_MinVal) * m_yScale - m_DrawArea.height; GL.Vertex3(m_DrawArea.xMin, y, 0); GL.Vertex3(m_DrawArea.xMax, y, 0); if (line.ShowValue) { m_SB.AppendLine($"<color={line.RGB}>{sVal}</color>"); } } else { TimedQueueItem <float> previous = default; foreach (var current in line.Buffer.Items()) { if (previous.Time > 0) { GL.Vertex3( MapTime(minTime, maxTime, previous.Time), (previous.Value - m_MinVal) * m_yScale - m_DrawArea.height, 0); GL.Vertex3( MapTime(minTime, maxTime, current.Time), (current.Value - m_MinVal) * m_yScale - m_DrawArea.height, 0); } previous = current; } if (line.ShowValue) { string sAvg = line.Buffer.Average.ToString(c_Format); m_SB.AppendLine($"<color={line.RGB}>{sVal}</color>"); m_SB.AppendLine($"<color={line.RGB_Avg}>{sAvg}</color>"); } } } } GL.End(); GL.PopMatrix(); m_TextVal.text = m_SB.ToString(); } }