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>,Typed<T>
public class CellRandomAccess<T extends NativeType<T>,C extends Cell<?>> extends AbstractLocalizable implements RandomAccess<T>, AbstractCellImg.CellImgSampler<C>
RandomAccesson aAbstractCellImg. The boundaries of the current cell are cached, so that position changes within the same cell have minimal overhead.
-
-
Field Summary
Fields Modifier and Type Field Description protected int[]cellDimsprotected long[]currentCellMaxprotected long[]currentCellMinprotected int[]currentCellStepsprotected long[]dimensionsprotected CellGridgridprotected booleanisOutOfBoundsprotected RandomAccess<C>randomAccessOnCellsprotected Ttypeprotected IndextypeIndexprivate booleantypeNeedsUpdate-
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)protectedCellRandomAccess(CellRandomAccess<T,C> randomAccess)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidbck(int d)Move by -1 in one dimension.CellRandomAccess<T,C>copy()voidfwd(int d)Move by 1 in one dimension.Tget()Access the actual T instance providing access to a pixel, sub-pixel or integral region value theSamplerpoints at.CgetCell()TgetType()Get an instance ofT.voidmove(int[] distance)Move the element relative to its current location using an int[] as distance vector.voidmove(int distance, int d)Move the element in one dimension for some distance.voidmove(long[] distance)Move the element relative to its current location using a long[] as distance vector.voidmove(long distance, int d)Move the element in one dimension for some distance.voidmove(Localizable localizable)Move the element relative to its current location using anLocalizableas distance vector.private voidsetPos2(int[] pos, int d0)voidsetPosition(int[] pos)Set the position of the element.voidsetPosition(int pos, int d)Set the position of the element for one dimension.voidsetPosition(long[] pos)Set the position of the element.voidsetPosition(long pos, int d)Set the position of the element for one dimension.voidsetPosition(Localizable localizable)Place the element at the same location as a givenLocalizableprivate voidupdatePosition(boolean movedOutOfBounds)Update type to currentCellSteps, currentCellMin, and type after switching cells.-
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
getDoublePosition, getFloatPosition, getIntPosition, getLongPosition, localize, localize, localize, localize, positionAsLongArray, positionAsPoint
-
Methods inherited from interface net.imglib2.RandomAccess
copyRandomAccess, setPositionAndGet, setPositionAndGet, setPositionAndGet
-
Methods inherited from interface net.imglib2.RealLocalizable
localize, localize, positionAsDoubleArray, positionAsRealPoint
-
-
-
-
Field Detail
-
type
protected final T extends NativeType<T> type
-
typeIndex
protected final Index typeIndex
-
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 final int[] currentCellSteps
-
currentCellMin
protected final long[] currentCellMin
-
currentCellMax
protected final long[] currentCellMax
-
isOutOfBounds
protected boolean isOutOfBounds
-
typeNeedsUpdate
private boolean typeNeedsUpdate
-
-
Constructor Detail
-
CellRandomAccess
protected CellRandomAccess(CellRandomAccess<T,C> randomAccess)
-
CellRandomAccess
public CellRandomAccess(AbstractCellImg<T,?,C,?> img)
-
-
Method Detail
-
getCell
public C getCell()
- Specified by:
getCellin interfaceAbstractCellImg.CellImgSampler<T extends NativeType<T>>- Returns:
- the cell the sampler is currently in.
-
get
public T get()
Description copied from interface:SamplerAccess the actual T instance providing access to a pixel, sub-pixel or integral region value theSamplerpoints at.- Specified by:
getin interfaceSampler<T extends NativeType<T>>
-
getType
public T getType()
Description copied from interface:TypedGet an instance ofT.It should not be assumed that the returned
Tinstance is an independent copy. In particular, repeated calls togetType()may return the same instance.- Specified by:
getTypein interfaceSampler<T extends NativeType<T>>- Specified by:
getTypein interfaceTyped<T extends NativeType<T>>- Returns:
- an instance of
T
-
copy
public CellRandomAccess<T,C> copy()
- Specified by:
copyin interfaceRandomAccess<T extends NativeType<T>>- Specified by:
copyin interfaceSampler<T extends NativeType<T>>- Returns:
- - A new
Samplerin 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 anArrayCursorfor example)
-
fwd
public void fwd(int d)
Description copied from interface:PositionableMove by 1 in one dimension.- Specified by:
fwdin interfacePositionable- Parameters:
d- dimension
-
bck
public void bck(int d)
Description copied from interface:PositionableMove by -1 in one dimension.- Specified by:
bckin interfacePositionable- Parameters:
d- dimension
-
move
public void move(int distance, int d)Description copied from interface:PositionableMove the element in one dimension for some distance.- Specified by:
movein interfacePositionable- Parameters:
distance- relative offset in dimension dd- dimension
-
move
public void move(long distance, int d)Description copied from interface:PositionableMove the element in one dimension for some distance.- Specified by:
movein interfacePositionable- Parameters:
distance- relative offset in dimension dd- dimension
-
move
public void move(Localizable localizable)
Description copied from interface:PositionableMove the element relative to its current location using anLocalizableas distance vector.- Specified by:
movein interfacePositionable- Parameters:
localizable- relative offset,EuclideanSpace.numDimensions()must be ≥EuclideanSpace.numDimensions()
-
move
public void move(int[] distance)
Description copied from interface:PositionableMove the element relative to its current location using an int[] as distance vector.- Specified by:
movein interfacePositionable- Parameters:
distance- relative offset, length must be ≥EuclideanSpace.numDimensions()
-
move
public void move(long[] distance)
Description copied from interface:PositionableMove the element relative to its current location using a long[] as distance vector.- Specified by:
movein interfacePositionable- Parameters:
distance- relative offset, length must be ≥EuclideanSpace.numDimensions()
-
setPosition
public void setPosition(int pos, int d)Description copied from interface:PositionableSet the position of the element for one dimension.- Specified by:
setPositionin interfacePositionable- Parameters:
pos- absolute position in dimension dd- dimension
-
setPosition
public void setPosition(long pos, int d)Description copied from interface:PositionableSet the position of the element for one dimension.- Specified by:
setPositionin interfacePositionable- Parameters:
pos- absolute position in dimension dd- dimension
-
setPosition
public void setPosition(Localizable localizable)
Description copied from interface:PositionablePlace the element at the same location as a givenLocalizable- Specified by:
setPositionin interfacePositionable- Parameters:
localizable- absolute position,EuclideanSpace.numDimensions()must be ≥EuclideanSpace.numDimensions()
-
setPosition
public void setPosition(int[] pos)
Description copied from interface:PositionableSet the position of the element.- Specified by:
setPositionin interfacePositionable- Parameters:
pos- absolute position, length must be ≥EuclideanSpace.numDimensions()
-
setPos2
private void setPos2(int[] pos, int d0)
-
setPosition
public void setPosition(long[] pos)
Description copied from interface:PositionableSet the position of the element.- Specified by:
setPositionin interfacePositionable- Parameters:
pos- absolute position, length must be ≥EuclideanSpace.numDimensions()
-
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.
-
-