Class DoubleCircularBuffer

java.lang.Object
edu.wpi.first.util.DoubleCircularBuffer

public class DoubleCircularBuffer extends Object
This is a simple circular buffer so we don't need to "bucket brigade" copy old values.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Create a CircularBuffer with the provided size.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addFirst(double value)
    Push new value onto front of the buffer.
    void
    addLast(double value)
    Push new value onto back of the buffer.
    void
    Sets internal buffer contents to zero.
    double
    get(int index)
    Get the element at the provided index relative to the start of the buffer.
    double
    Get value at front of buffer.
    double
    Get value at back of buffer.
    double
    Pop value at front of buffer.
    double
    Pop value at back of buffer.
    void
    resize(int size)
    Resizes internal buffer to given size.
    int
    Returns number of elements in buffer.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • DoubleCircularBuffer

      public DoubleCircularBuffer(int size)
      Create a CircularBuffer with the provided size.
      Parameters:
      size - The size of the circular buffer.
  • Method Details

    • size

      public int size()
      Returns number of elements in buffer.
      Returns:
      number of elements in buffer
    • getFirst

      public double getFirst()
      Get value at front of buffer.
      Returns:
      value at front of buffer
    • getLast

      public double getLast()
      Get value at back of buffer.
      Returns:
      value at back of buffer
    • addFirst

      public void addFirst(double value)
      Push new value onto front of the buffer. The value at the back is overwritten if the buffer is full.
      Parameters:
      value - The value to push.
    • addLast

      public void addLast(double value)
      Push new value onto back of the buffer. The value at the front is overwritten if the buffer is full.
      Parameters:
      value - The value to push.
    • removeFirst

      public double removeFirst()
      Pop value at front of buffer.
      Returns:
      value at front of buffer
    • removeLast

      public double removeLast()
      Pop value at back of buffer.
      Returns:
      value at back of buffer
    • resize

      public void resize(int size)
      Resizes internal buffer to given size.

      A new buffer is allocated because arrays are not resizable.

      Parameters:
      size - New buffer size.
    • clear

      public void clear()
      Sets internal buffer contents to zero.
    • get

      public double get(int index)
      Get the element at the provided index relative to the start of the buffer.
      Parameters:
      index - Index into the buffer.
      Returns:
      Element at index starting from front of buffer.