Package net.imglib2.view.iteration
Class SlicingCursor<T>
- java.lang.Object
-
- net.imglib2.AbstractEuclideanSpace
-
- net.imglib2.view.iteration.SlicingCursor<T>
-
- All Implemented Interfaces:
java.util.Iterator<T>,Cursor<T>,EuclideanSpace,Iterator,Localizable,RealCursor<T>,RealLocalizable,Sampler<T>,Typed<T>
public class SlicingCursor<T> extends AbstractEuclideanSpace implements Cursor<T>
Wrap a cursor that runs on a hyperslice and apply coordinate transform on localize calls.
-
-
Field Summary
Fields Modifier and Type Field Description private intmnumber of dimensions of source Cursor, respectively numTargetDimensions of the Slicing transform.private Cursor<T>ssource Cursor.private int[]sourceComponentfor each component of the source vector: to which target vector component should it be taken.private long[]tmpPosition-
Fields inherited from class net.imglib2.AbstractEuclideanSpace
n
-
-
Constructor Summary
Constructors Modifier Constructor Description (package private)SlicingCursor(Cursor<T> source, Slicing transformToSource)protectedSlicingCursor(SlicingCursor<T> cursor)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SlicingCursor<T>copy()voidfwd()Move forward.Tget()Access the actual T instance providing access to a pixel, sub-pixel or integral region value theSamplerpoints at.doublegetDoublePosition(int d)Return the current position in a given dimension.floatgetFloatPosition(int d)Return the current position in a given dimension.intgetIntPosition(int d)Return the current position in a given dimension.longgetLongPosition(int d)Return the current position in a given dimension.TgetType()Get an instance ofT.booleanhasNext()Returns true if another step forward is possible.voidjumpFwd(long steps)Move steps × forward.voidlocalize(double[] position)Write the current position into the passed array.voidlocalize(float[] position)Write the current position into the passed array.voidlocalize(int[] position)Write the current position into the passed array.voidlocalize(long[] position)Write the current position into the passed array.Tnext()Default implementation, callsIterator.fwd()thenSampler.get().voidreset()Reset theIterator, that is put it to where it would be if newly created.-
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.Cursor
copyCursor
-
Methods inherited from interface net.imglib2.EuclideanSpace
numDimensions
-
Methods inherited from interface net.imglib2.Localizable
localize, localize, positionAsLongArray, positionAsPoint
-
Methods inherited from interface net.imglib2.RealLocalizable
positionAsDoubleArray, positionAsRealPoint
-
-
-
-
Field Detail
-
m
private final int m
number of dimensions of source Cursor, respectively numTargetDimensions of the Slicing transform.
-
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
-
-
Constructor Detail
-
SlicingCursor
SlicingCursor(Cursor<T> source, Slicing transformToSource)
Create a Cursor that forwards allCursormethods tosource, exceptLocalizablemethods. Localize calls are propagated throughtransformToSource.
-
SlicingCursor
protected SlicingCursor(SlicingCursor<T> cursor)
-
-
Method Detail
-
localize
public void localize(int[] position)
Write the current position into the passed array.- Specified by:
localizein interfaceLocalizable- Parameters:
position- receives current position, length must be ≥EuclideanSpace.numDimensions()
-
localize
public void localize(long[] position)
Write the current position into the passed array.- Specified by:
localizein interfaceLocalizable- Parameters:
position- receives current position, length must be ≥EuclideanSpace.numDimensions()
-
getIntPosition
public int getIntPosition(int d)
Return the current position in a given dimension.- Specified by:
getIntPositionin interfaceLocalizable- Parameters:
d- dimension- Returns:
- dimension of current position
-
getLongPosition
public long getLongPosition(int d)
Return the current position in a given dimension.- Specified by:
getLongPositionin interfaceLocalizable- Parameters:
d- dimension- Returns:
- dimension of current position
-
localize
public void localize(float[] position)
Write the current position into the passed array.- Specified by:
localizein interfaceRealLocalizable- Parameters:
position- receives current position, length must be ≥EuclideanSpace.numDimensions()
-
localize
public void localize(double[] position)
Write the current position into the passed array.- Specified by:
localizein interfaceRealLocalizable- Parameters:
position- receives current position, length must be ≥EuclideanSpace.numDimensions()
-
getFloatPosition
public float getFloatPosition(int d)
Return the current position in a given dimension.- Specified by:
getFloatPositionin interfaceLocalizable- Specified by:
getFloatPositionin interfaceRealLocalizable- Parameters:
d- dimension- Returns:
- dimension of current position
-
getDoublePosition
public double getDoublePosition(int d)
Return the current position in a given dimension.- Specified by:
getDoublePositionin interfaceLocalizable- Specified by:
getDoublePositionin interfaceRealLocalizable- Parameters:
d- dimension- Returns:
- dimension of current position
-
get
public T get()
Access the actual T instance providing access to a pixel, sub-pixel or integral region value theSamplerpoints at.
-
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.
-
copy
public SlicingCursor<T> copy()
- Specified by:
copyin interfaceCursor<T>- Specified by:
copyin interfaceRealCursor<T>- Specified by:
copyin interfaceSampler<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)
-
jumpFwd
public void jumpFwd(long steps)
Move steps × forward.Highly recommended to override this with a more efficient version.
-
reset
public void reset()
Reset theIterator, that is put it to where it would be if newly created.
-
hasNext
public boolean hasNext()
Returns true if another step forward is possible.
-
next
public T next()
Default implementation, callsIterator.fwd()thenSampler.get().Note, that
hasNext()is not checked beforefwd(). If such a check is desired it should be implemented infwd()(throwingNoSuchElementException).- Specified by:
nextin interfacejava.util.Iterator<T>- Specified by:
nextin interfaceRealCursor<T>
-
-