Package net.imglib2.outofbounds
Class AbstractOutOfBoundsMirror<T>
java.lang.Object
net.imglib2.outofbounds.AbstractOutOfBoundsMirror<T>
- Type Parameters:
T
-
- All Implemented Interfaces:
EuclideanSpace
,Localizable
,Bounded
,OutOfBounds<T>
,Positionable
,RandomAccess<T>
,RealLocalizable
,Sampler<T>
- Direct Known Subclasses:
OutOfBoundsMirrorDoubleBoundary
,OutOfBoundsMirrorSingleBoundary
Abstract implementation of shared functions for mirroring out of bounds.
Internally used coordinates use an interval [0n,max
n-minn] and compensate for min-shift on
localization and positioning.
- Author:
- Stephan Saalfeld
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final long[]
Dimensions of the wrappedRandomAccessible
.protected final boolean[]
protected final boolean[]
protected boolean
protected final long[]
Minimum of the wrappedRandomAccessible
.protected final int
protected final RandomAccess<T>
protected final long[]
Period of the extended interval.protected final long[]
Position relative to min, for internal calculations. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
AbstractOutOfBoundsMirror
(AbstractOutOfBoundsMirror<T> outOfBounds) -
Method Summary
Modifier and TypeMethodDescriptionprotected final void
abstract AbstractOutOfBoundsMirror<T>
copy()
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.boolean
True if located out of image bounds.void
localize
(double[] pos) Write the current position into the passed array.void
localize
(float[] pos) Write the current position into the passed array.void
localize
(int[] pos) Write the current position into the passed array.void
localize
(long[] pos) 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) Override with a more efficient version.void
move
(Localizable localizable) 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
(Localizable localizable) Place the element at the same location as a givenLocalizable
toString()
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface net.imglib2.Positionable
bck, fwd, setPosition
Methods inherited from interface net.imglib2.RandomAccess
copyRandomAccess
-
Field Details
-
outOfBoundsRandomAccess
-
n
protected final int n -
dimension
protected final long[] dimensionDimensions of the wrappedRandomAccessible
. -
zeroMinPos
protected final long[] zeroMinPosPosition relative to min, for internal calculations. zeroMinPos = position - min. -
min
protected final long[] minMinimum of the wrappedRandomAccessible
. -
p
protected final long[] pPeriod of the extended interval. This depends on whether boundary pixels are mirrored. SeeOutOfBoundsMirrorDoubleBoundary
, seeOutOfBoundsMirrorSingleBoundary
. -
inc
protected final boolean[] inc -
dimIsOutOfBounds
protected final boolean[] dimIsOutOfBounds -
isOutOfBounds
protected boolean isOutOfBounds
-
-
Constructor Details
-
AbstractOutOfBoundsMirror
-
AbstractOutOfBoundsMirror
public AbstractOutOfBoundsMirror(F f)
-
-
Method Details
-
checkOutOfBounds
protected final void checkOutOfBounds() -
numDimensions
public int numDimensions()Description copied from interface:EuclideanSpace
Gets the space's number of dimensions.- Specified by:
numDimensions
in interfaceEuclideanSpace
-
isOutOfBounds
public boolean isOutOfBounds()Description copied from interface:Bounded
True if located out of image bounds.- Specified by:
isOutOfBounds
in interfaceBounded
-
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 interfaceOutOfBounds<T>
- 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)
-
localize
public void localize(float[] pos) Description copied from interface:RealLocalizable
Write the current position into the passed array.- Specified by:
localize
in interfaceRealLocalizable
- Parameters:
pos
- receives current position
-
localize
public void localize(double[] pos) Description copied from interface:RealLocalizable
Write the current position into the passed array.- Specified by:
localize
in interfaceRealLocalizable
- Parameters:
pos
- receives current position
-
localize
public void localize(int[] pos) Description copied from interface:Localizable
Write the current position into the passed array.- Specified by:
localize
in interfaceLocalizable
- Parameters:
pos
- receives current position
-
localize
public void localize(long[] pos) Description copied from interface:Localizable
Write the current position into the passed array.- Specified by:
localize
in interfaceLocalizable
- Parameters:
pos
- 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
-
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
-
move
public void move(long distance, int d) Override with a more efficient version.- Specified by:
move
in interfacePositionable
- Parameters:
distance
- relative offset in dimension dd
- 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
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 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
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[] 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()
-
toString
-