Package net.imglib2.img.cell
Class CellRandomAccess<T extends NativeType<T>,C extends Cell<?>>
- java.lang.Object
-
- net.imglib2.AbstractEuclideanSpace
-
- net.imglib2.AbstractLocalizable
-
- net.imglib2.img.cell.CellRandomAccess<T,C>
-
- All Implemented Interfaces:
EuclideanSpace
,AbstractCellImg.CellImgSampler<C>
,Localizable
,Positionable
,RandomAccess<T>
,RealLocalizable
,Sampler<T>
public class CellRandomAccess<T extends NativeType<T>,C extends Cell<?>> extends AbstractLocalizable implements RandomAccess<T>, AbstractCellImg.CellImgSampler<C>
RandomAccess
on aAbstractCellImg
. The boundaries of the current cell are cached, so that position changes within the same cell have minimal overhead.- Author:
- Tobias Pietzsch
-
-
Field Summary
Fields Modifier and Type Field Description protected int[]
cellDims
protected long[]
currentCellMax
protected long[]
currentCellMin
protected int[]
currentCellSteps
protected long[]
dimensions
protected CellGrid
grid
protected int
index
The current index of the type.protected boolean
isOutOfBounds
protected long[]
oobCellMax
protected long[]
oobCellMin
protected RandomAccess<C>
randomAccessOnCells
protected T
type
-
Fields inherited from class net.imglib2.AbstractLocalizable
position
-
Fields inherited from class net.imglib2.AbstractEuclideanSpace
n
-
-
Constructor Summary
Constructors Modifier Constructor Description CellRandomAccess(AbstractCellImg<T,?,C,?> img)
protected
CellRandomAccess(CellRandomAccess<T,C> randomAccess)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
bck(int d)
Move by -1 in one dimension.CellRandomAccess<T,C>
copy()
CellRandomAccess<T,C>
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 theSampler
points at.C
getCell()
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 localizable)
Move the element relative to its current location using anLocalizable
as distance vector.void
setPosition(int[] pos)
Set the position of the element.void
setPosition(int pos, int d)
Set the position of the element for one dimension.void
setPosition(long[] pos)
Set the position of the element.void
setPosition(long pos, int d)
Set the position of the element for one dimension.void
setPosition(Localizable localizable)
Place the element at the same location as a givenLocalizable
-
Methods inherited from class net.imglib2.AbstractLocalizable
getDoublePosition, getFloatPosition, getIntPosition, getLongPosition, localize, localize, localize, localize
-
Methods inherited from class net.imglib2.AbstractEuclideanSpace
numDimensions
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface net.imglib2.EuclideanSpace
numDimensions
-
Methods inherited from interface net.imglib2.Localizable
getIntPosition, getLongPosition, localize, localize
-
Methods inherited from interface net.imglib2.RealLocalizable
getDoublePosition, getFloatPosition, localize, localize
-
-
-
-
Field Detail
-
type
protected final T extends NativeType<T> type
-
grid
protected final CellGrid grid
-
randomAccessOnCells
protected final RandomAccess<C extends Cell<?>> randomAccessOnCells
-
cellDims
protected final int[] cellDims
-
dimensions
protected final long[] dimensions
-
currentCellSteps
protected int[] currentCellSteps
-
currentCellMin
protected long[] currentCellMin
-
currentCellMax
protected long[] currentCellMax
-
isOutOfBounds
protected boolean isOutOfBounds
-
oobCellMin
protected final long[] oobCellMin
-
oobCellMax
protected final long[] oobCellMax
-
index
protected int index
The current index of the type. It is faster to duplicate this here than to access it through type.getIndex().
-
-
Constructor Detail
-
CellRandomAccess
protected CellRandomAccess(CellRandomAccess<T,C> randomAccess)
-
CellRandomAccess
public CellRandomAccess(AbstractCellImg<T,?,C,?> img)
-
-
Method Detail
-
getCell
public C getCell()
- Specified by:
getCell
in interfaceAbstractCellImg.CellImgSampler<T extends NativeType<T>>
- Returns:
- the cell the sampler is currently in.
-
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 theSampler
points at.- Specified by:
get
in interfaceSampler<T extends NativeType<T>>
-
copy
public CellRandomAccess<T,C> copy()
- Specified by:
copy
in interfaceSampler<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 theSampler
. 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 anArrayCursor
for example)
-
copyRandomAccess
public CellRandomAccess<T,C> copyRandomAccess()
- Specified by:
copyRandomAccess
in interfaceRandomAccess<T extends NativeType<T>>
-
fwd
public void fwd(int d)
Description copied from interface:Positionable
Move by 1 in one dimension.- Specified by:
fwd
in interfacePositionable
- Parameters:
d
- dimension
-
bck
public void bck(int d)
Description copied from interface:Positionable
Move by -1 in one dimension.- Specified by:
bck
in interfacePositionable
- 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 interfacePositionable
- Parameters:
distance
- relative offset in dimension dd
- 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 interfacePositionable
- Parameters:
distance
- relative offset in dimension dd
- dimension
-
move
public void move(Localizable localizable)
Description copied from interface:Positionable
Move the element relative to its current location using anLocalizable
as distance vector.- Specified by:
move
in interfacePositionable
- 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 interfacePositionable
- 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 interfacePositionable
- 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 interfacePositionable
- Parameters:
pos
- absolute position in dimension dd
- 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 interfacePositionable
- Parameters:
pos
- absolute position in dimension dd
- dimension
-
setPosition
public void setPosition(Localizable localizable)
Description copied from interface:Positionable
Place the element at the same location as a givenLocalizable
- Specified by:
setPosition
in interfacePositionable
- 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 interfacePositionable
- 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 interfacePositionable
- Parameters:
pos
- absolute position, length must be ≥EuclideanSpace.numDimensions()
-
-