Class FullSourceMapMixedRandomAccess<T>

java.lang.Object
net.imglib2.AbstractEuclideanSpace
net.imglib2.view.FullSourceMapMixedRandomAccess<T>
Type Parameters:
T -
All Implemented Interfaces:
EuclideanSpace, Localizable, Positionable, RandomAccess<T>, RealLocalizable, Sampler<T>, Typed<T>

public final class FullSourceMapMixedRandomAccess<T> extends AbstractEuclideanSpace implements RandomAccess<T>
Wrap a source RandomAccess which is related to this by a Mixed transformToSource. This is for Mixed transforms that feature a full mapping of source to target components. That is, there is no down-projection, no source component is discarded. In this case, the current position can be recovered from the position of the source RandomAccess. Localize can be implemented via localize on the source RandomAccess.

For the general case, see MixedRandomAccess.

  • Field Details

    • s

      private final RandomAccess<T> s
      source RandomAccess. note that this is the target of the transformToSource.
    • m

      private final int m
      number of dimensions of source RandomAccess, respectively numTargetDimensions of the Mixed transform.
    • translation

      private final long[] translation
    • sourceInv

      private final boolean[] sourceInv
      for each component of the source vector: should the target vector component be inverted (true).
    • sourceComponent

      private final int[] sourceComponent
      for each component of the source vector: to which target vector component should it be taken.
    • tmpPosition

      private final long[] tmpPosition
    • tmpDistance

      private final long[] tmpDistance
  • 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, length must be ≥ EuclideanSpace.numDimensions()
    • 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, length must be ≥ EuclideanSpace.numDimensions()
    • 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, length must be ≥ EuclideanSpace.numDimensions()
    • 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, length must be ≥ EuclideanSpace.numDimensions()
    • getFloatPosition

      public float getFloatPosition(int d)
      Description copied from interface: RealLocalizable
      Return the current position in a given dimension.
      Specified by:
      getFloatPosition in interface Localizable
      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 Localizable
      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(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[] 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>
    • getType

      public T getType()
      Description copied from interface: Typed
      Get an instance of T.

      It should not be assumed that the returned T instance is an independent copy. In particular, repeated calls to getType() may return the same instance.

      Specified by:
      getType in interface Sampler<T>
      Specified by:
      getType in interface Typed<T>
      Returns:
      an instance of T
    • copy

      Specified by:
      copy in interface RandomAccess<T>
      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)