Class TransformRandomAccess<T>

All Implemented Interfaces:
EuclideanSpace, Localizable, Positionable, RandomAccess<T>, RealLocalizable, Sampler<T>

public final class TransformRandomAccess<T> extends AbstractLocalizable implements RandomAccess<T>
Wrap a source RandomAccess which is related to this by a generic Transform transformToSource. TransformRandomAccess gets called by Cursor implementations over RandomAccess that initialize at the Interval min position - 1, i.e. they call bck(0) after setPosition(min). Transforms are not necessarily defined at this position and may throw an exception. Therefore, position update must not apply the transformation! Instead, the transformation is applied at get(). So don't call get() more than once at the same place (generally a good idea).
Author:
Stephan Saalfeld, Philipp Hanslovsky, Tobias Pietzsch
  • Constructor Details

  • Method Details

    • 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 localizable)
      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:
      localizable - 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 localizable)
      Description copied from interface: Positionable
      Place the element at the same location as a given Localizable
      Specified by:
      setPosition in interface Positionable
      Parameters:
      localizable - absolute position, EuclideanSpace.numDimensions() must be ≥ EuclideanSpace.numDimensions()
    • setPosition

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

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

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

      public void setPosition(long pos, int d)
      Description copied from interface: Positionable
      Set the position of the element for one dimension.
      Specified by:
      setPosition in interface Positionable
      Parameters:
      pos - 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 TransformRandomAccess<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 TransformRandomAccess<T> copyRandomAccess()
      Specified by:
      copyRandomAccess in interface RandomAccess<T>