Class StackView.MoveAllSlicesRA<T>

java.lang.Object
net.imglib2.view.StackView.MoveAllSlicesRA<T>
Type Parameters:
T - the pixel type
All Implemented Interfaces:
EuclideanSpace, Localizable, Positionable, RandomAccess<T>, RealLocalizable, Sampler<T>
Enclosing class:
StackView<T>

public static class StackView.MoveAllSlicesRA<T> extends Object implements RandomAccess<T>
A RandomAccess on a StackView. It keeps a list of RandomAccesses on all constituent hyper-slices of the StackView.

When changing any dimension of the position, except the (n+1)th, this position change is applied to the all slice RandomAccesses. The current (n+1)th dimension of the position is maintained as an index. When get() is called it is forwarded to the slice RandomAccess at that index.

The potential advantage of this approach is that it does not need to do a full setPosition() when changing slices.This is faster assuming that we access in a loop over dimensions with the last dimension (the hyper-slice dimension) in the inner loop.

Only use this if you know what you are doing.

  • Constructor Details

  • Method Details

    • localize

      public void localize(int[] position)
      Description copied from interface: Localizable
      Write the current position into the passed array.
      Specified by:
      localize in interface Localizable
      Parameters:
      position - receives current position
    • localize

      public void localize(long[] position)
      Description copied from interface: Localizable
      Write the current position into the passed array.
      Specified by:
      localize in interface Localizable
      Parameters:
      position - receives current position
    • getIntPosition

      public int getIntPosition(int d)
      Description copied from interface: Localizable
      Return the current position in a given dimension.
      Specified by:
      getIntPosition in interface Localizable
      Parameters:
      d - dimension
      Returns:
      dimension of current position
    • getLongPosition

      public long getLongPosition(int d)
      Description copied from interface: Localizable
      Return the current position in a given dimension.
      Specified by:
      getLongPosition in interface Localizable
      Parameters:
      d - dimension
      Returns:
      dimension of current position
    • localize

      public void localize(float[] position)
      Description copied from interface: RealLocalizable
      Write the current position into the passed array.
      Specified by:
      localize in interface RealLocalizable
      Parameters:
      position - receives current position
    • localize

      public void localize(double[] position)
      Description copied from interface: RealLocalizable
      Write the current position into the passed array.
      Specified by:
      localize in interface RealLocalizable
      Parameters:
      position - receives current position
    • getFloatPosition

      public float getFloatPosition(int d)
      Description copied from interface: RealLocalizable
      Return the current position in a given dimension.
      Specified by:
      getFloatPosition in interface RealLocalizable
      Parameters:
      d - dimension
      Returns:
      dimension of current position
    • getDoublePosition

      public double getDoublePosition(int d)
      Description copied from interface: RealLocalizable
      Return the current position in a given dimension.
      Specified by:
      getDoublePosition in interface RealLocalizable
      Parameters:
      d - dimension
      Returns:
      dimension of current position
    • numDimensions

      public int numDimensions()
      Description copied from interface: EuclideanSpace
      Gets the space's number of dimensions.
      Specified by:
      numDimensions in interface EuclideanSpace
    • fwd

      public void fwd(int d)
      Description copied from interface: Positionable
      Move by 1 in one dimension.
      Specified by:
      fwd in interface Positionable
      Parameters:
      d - dimension
    • bck

      public void bck(int d)
      Description copied from interface: Positionable
      Move by -1 in one dimension.
      Specified by:
      bck in interface Positionable
      Parameters:
      d - dimension
    • move

      public void move(int distance, int d)
      Description copied from interface: Positionable
      Move the element in one dimension for some distance.
      Specified by:
      move in interface Positionable
      Parameters:
      distance - relative offset in dimension d
      d - dimension
    • move

      public void move(long distance, int d)
      Description copied from interface: Positionable
      Move the element in one dimension for some distance.
      Specified by:
      move in interface Positionable
      Parameters:
      distance - relative offset in dimension d
      d - dimension
    • move

      public void move(Localizable distance)
      Description copied from interface: Positionable
      Move the element relative to its current location using an Localizable as distance vector.
      Specified by:
      move in interface Positionable
      Parameters:
      distance - relative offset, EuclideanSpace.numDimensions() must be ≥ EuclideanSpace.numDimensions()
    • move

      public void move(int[] distance)
      Description copied from interface: Positionable
      Move the element relative to its current location using an int[] as distance vector.
      Specified by:
      move in interface Positionable
      Parameters:
      distance - relative offset, length must be ≥ EuclideanSpace.numDimensions()
    • move

      public void move(long[] distance)
      Description copied from interface: Positionable
      Move the element relative to its current location using a long[] as distance vector.
      Specified by:
      move in interface Positionable
      Parameters:
      distance - relative offset, length must be ≥ EuclideanSpace.numDimensions()
    • setPosition

      public void setPosition(Localizable position)
      Description copied from interface: Positionable
      Place the element at the same location as a given Localizable
      Specified by:
      setPosition in interface Positionable
      Parameters:
      position - absolute position, EuclideanSpace.numDimensions() must be ≥ EuclideanSpace.numDimensions()
    • setPosition

      public void setPosition(int[] position)
      Description copied from interface: Positionable
      Set the position of the element.
      Specified by:
      setPosition in interface Positionable
      Parameters:
      position - absolute position, length must be ≥ EuclideanSpace.numDimensions()
    • setPosition

      public void setPosition(long[] position)
      Description copied from interface: Positionable
      Set the position of the element.
      Specified by:
      setPosition in interface Positionable
      Parameters:
      position - absolute position, length must be ≥ EuclideanSpace.numDimensions()
    • setPosition

      public void setPosition(int position, int d)
      Description copied from interface: Positionable
      Set the position of the element for one dimension.
      Specified by:
      setPosition in interface Positionable
      Parameters:
      position - absolute position in dimension d
      d - dimension
    • setPosition

      public void setPosition(long position, int d)
      Description copied from interface: Positionable
      Set the position of the element for one dimension.
      Specified by:
      setPosition in interface Positionable
      Parameters:
      position - absolute position in dimension d
      d - dimension
    • get

      public T get()
      Description copied from interface: Sampler
      Access the actual T instance providing access to a pixel, sub-pixel or integral region value the Sampler points at.
      Specified by:
      get in interface Sampler<T>
    • copy

      public StackView.MoveAllSlicesRA<T> copy()
      Specified by:
      copy in interface Sampler<T>
      Returns:
      - A new Sampler in the same state accessing the same values. It does NOT copy T, just the state of the Sampler. Otherwise use T.copy() if available. Sampler.copy().get() == Sampler.get(), i.e. both hold the same value, not necessarily the same instance (this is the case for an ArrayCursor for example)
    • copyRandomAccess

      public StackView.MoveAllSlicesRA<T> copyRandomAccess()
      Specified by:
      copyRandomAccess in interface RandomAccess<T>