Class 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 java.lang.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.

    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void bck​(int d)
      Move by -1 in one dimension.
      StackView.MoveAllSlicesRA<T> copy()  
      StackView.MoveAllSlicesRA<T> copyRandomAccess()  
      void fwd​(int d)
      Move by 1 in one dimension.
      T get()
      Access the actual T instance providing access to a pixel, sub-pixel or integral region value the Sampler points at.
      double getDoublePosition​(int d)
      Return the current position in a given dimension.
      float getFloatPosition​(int d)
      Return the current position in a given dimension.
      int getIntPosition​(int d)
      Return the current position in a given dimension.
      long getLongPosition​(int d)
      Return the current position in a given dimension.
      void localize​(double[] position)
      Write the current position into the passed array.
      void localize​(float[] position)
      Write the current position into the passed array.
      void localize​(int[] position)
      Write the current position into the passed array.
      void localize​(long[] position)
      Write the current position into the passed array.
      void move​(int[] distance)
      Move the element relative to its current location using an int[] as distance vector.
      void move​(int distance, int d)
      Move the element in one dimension for some distance.
      void move​(long[] distance)
      Move the element relative to its current location using a long[] as distance vector.
      void move​(long distance, int d)
      Move the element in one dimension for some distance.
      void move​(Localizable distance)
      Move the element relative to its current location using an Localizable as distance vector.
      int numDimensions()
      Gets the space's number of dimensions.
      void setPosition​(int[] position)
      Set the position of the element.
      void setPosition​(int position, int d)
      Set the position of the element for one dimension.
      void setPosition​(long[] position)
      Set the position of the element.
      void setPosition​(long position, int d)
      Set the position of the element for one dimension.
      void setPosition​(Localizable position)
      Place the element at the same location as a given Localizable
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • 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
      • 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​(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​(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)