Package net.imglib2.view
Class StackView.MoveAllSlicesRA<T>
java.lang.Object
net.imglib2.view.StackView.MoveAllSlicesRA<T>
- Type Parameters:
T
- the pixel type
- All Implemented Interfaces:
EuclideanSpace
,Localizable
,Positionable
,RandomAccess<T>
,RealLocalizable
,Sampler<T>
A
RandomAccess
on a StackView
. It keeps a list of
RandomAccess
es on all constituent hyper-slices of the
StackView
.
When changing any dimension of the position, except the (n+1)th,
this position change is applied to the all slice
RandomAccess
es. The current (n+1)th dimension of the
position is maintained as an index. When get()
is called it is
forwarded to the slice RandomAccess
at that index.
The potential advantage of this approach is that it does not need to do a
full setPosition()
when changing slices.This is faster assuming
that we access in a loop over dimensions with the last dimension (the
hyper-slice dimension) in the inner loop.
Only use this if you know what you are doing.
-
Constructor Summary
ConstructorsConstructorDescriptionMoveAllSlicesRA
(RandomAccessibleInterval<T>[] slices) MoveAllSlicesRA
(RandomAccessibleInterval<T>[] slices, Interval interval) -
Method Summary
Modifier and TypeMethodDescriptionvoid
bck
(int d) Move by -1 in one dimension.copy()
void
fwd
(int d) Move by 1 in one dimension.get()
Access the actual T instance providing access to a pixel, sub-pixel or integral region value theSampler
points at.double
getDoublePosition
(int d) Return the current position in a given dimension.float
getFloatPosition
(int d) Return the current position in a given dimension.int
getIntPosition
(int d) Return the current position in a given dimension.long
getLongPosition
(int d) Return the current position in a given dimension.void
localize
(double[] position) Write the current position into the passed array.void
localize
(float[] position) Write the current position into the passed array.void
localize
(int[] position) Write the current position into the passed array.void
localize
(long[] position) Write the current position into the passed array.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 distance) Move the element relative to its current location using anLocalizable
as distance vector.int
Gets the space's number of dimensions.void
setPosition
(int[] position) Set the position of the element.void
setPosition
(int position, int d) Set the position of the element for one dimension.void
setPosition
(long[] position) Set the position of the element.void
setPosition
(long position, int d) Set the position of the element for one dimension.void
setPosition
(Localizable position) Place the element at the same location as a givenLocalizable
-
Constructor Details
-
MoveAllSlicesRA
-
MoveAllSlicesRA
-
-
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 interfaceLocalizable
- Parameters:
position
- receives current position
-
localize
public void localize(long[] position) Description copied from interface:Localizable
Write the current position into the passed array.- Specified by:
localize
in interfaceLocalizable
- Parameters:
position
- receives current position
-
getIntPosition
public int getIntPosition(int d) Description copied from interface:Localizable
Return the current position in a given dimension.- Specified by:
getIntPosition
in interfaceLocalizable
- 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 interfaceLocalizable
- 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 interfaceRealLocalizable
- Parameters:
position
- receives current position
-
localize
public void localize(double[] position) Description copied from interface:RealLocalizable
Write the current position into the passed array.- Specified by:
localize
in interfaceRealLocalizable
- Parameters:
position
- receives current position
-
getFloatPosition
public float getFloatPosition(int d) Description copied from interface:RealLocalizable
Return the current position in a given dimension.- Specified by:
getFloatPosition
in interfaceRealLocalizable
- 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 interfaceRealLocalizable
- Parameters:
d
- dimension- Returns:
- dimension of current position
-
numDimensions
public int numDimensions()Description copied from interface:EuclideanSpace
Gets the space's number of dimensions.- Specified by:
numDimensions
in interfaceEuclideanSpace
-
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
Description copied from interface:Positionable
Move the element relative to its current location using anLocalizable
as distance vector.- Specified by:
move
in interfacePositionable
- Parameters:
distance
- 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
Description copied from interface:Positionable
Place the element at the same location as a givenLocalizable
- Specified by:
setPosition
in interfacePositionable
- Parameters:
position
- 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 interfacePositionable
- 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 interfacePositionable
- 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 interfacePositionable
- Parameters:
position
- absolute position in dimension dd
- 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 interfacePositionable
- Parameters:
position
- absolute position in dimension dd
- dimension
-
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. -
copy
- Specified by:
copy
in interfaceSampler<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
- Specified by:
copyRandomAccess
in interfaceRandomAccess<T>
-