///<summary>
 /// Constructs a read buffer manager.
 ///</summary>
 ///<param name="manager">Owning buffered states manager.</param>
 ///<param name="parallelLooper">Parallel loop provider to use.</param>
 public StateReadBuffers(BufferedStatesManager manager, IParallelLooper parallelLooper)
 {
     this.manager = manager;
     multithreadedStateUpdateDelegate = MultithreadedStateUpdate;
     FlipLocker          = new object();
     ParallelLooper      = parallelLooper;
     AllowMultithreading = true;
 }
 ///<summary>
 /// Constructs a new interpolated states manager.
 ///</summary>
 ///<param name="manager">Owning buffered states manager.</param>
 /// <param name="parallelLooper">Parallel loop provider to use.</param>
 public InterpolatedStatesManager(BufferedStatesManager manager, IParallelLooper parallelLooper)
 {
     this.manager = manager;
     multithreadedWithReadBuffersDelegate = UpdateIndex;
     FlipLocker          = new object();
     ParallelLooper      = parallelLooper;
     AllowMultithreading = true;
 }
 ///<summary>
 /// Constructs a new interpolated states manager.
 ///</summary>
 ///<param name="manager">Owning buffered states manager.</param>
 public InterpolatedStatesManager(BufferedStatesManager manager)
 {
     this.manager = manager;
     multithreadedWithReadBuffersDelegate = UpdateIndex;
     FlipLocker = new object();
 }
 ///<summary>
 /// Constructs a read buffer manager.
 ///</summary>
 ///<param name="manager">Owning buffered states manager.</param>
 public StateReadBuffers(BufferedStatesManager manager)
 {
     this.manager = manager;
     multithreadedStateUpdateDelegate = MultithreadedStateUpdate;
     FlipLocker = new object();
 }