Class CellRandomAccess<T extends NativeType<T>,​C extends Cell<?>>

    • Field Detail

      • typeIndex

        protected final Index typeIndex
      • randomAccessOnCells

        protected final RandomAccess<C extends Cell<?>> randomAccessOnCells
      • cellDims

        protected final int[] cellDims
      • dimensions

        protected final long[] dimensions
      • currentCellSteps

        protected final int[] currentCellSteps
      • currentCellMin

        protected final long[] currentCellMin
      • currentCellMax

        protected final long[] currentCellMax
      • isOutOfBounds

        protected boolean isOutOfBounds
      • typeNeedsUpdate

        private boolean typeNeedsUpdate
    • Constructor Detail

      • CellRandomAccess

        public CellRandomAccess​(AbstractCellImg<T,​?,​C,​?> img)
    • Method Detail

      • 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 extends NativeType<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 extends NativeType<T>>
        Specified by:
        getType in interface Typed<T extends NativeType<T>>
        Returns:
        an instance of T
      • copy

        public CellRandomAccess<T,​C> copy()
        Specified by:
        copy in interface RandomAccess<T extends NativeType<T>>
        Specified by:
        copy in interface Sampler<T extends NativeType<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)
      • 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 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
      • setPos2

        private void setPos2​(int[] pos,
                             int d0)
      • updatePosition

        private void updatePosition​(boolean movedOutOfBounds)
        Update type to currentCellSteps, currentCellMin, and type after switching cells. This is called after randomAccessOnCells and position fields have been set.