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
public abstract class AbstractOutOfBoundsMirror<T> extends java.lang.Object implements OutOfBounds<T>
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
Fields Modifier and Type Field Description protected long[]
dimension
Dimensions of the wrappedRandomAccessible
.protected boolean[]
dimIsOutOfBounds
protected boolean[]
inc
protected boolean
isOutOfBounds
protected long[]
min
Minimum of the wrappedRandomAccessible
.protected int
n
protected RandomAccess<T>
outOfBoundsRandomAccess
protected long[]
p
Period of the extended interval.protected long[]
zeroMinPos
Position relative to min, for internal calculations.
-
Constructor Summary
Constructors Modifier Constructor Description AbstractOutOfBoundsMirror(F f)
protected
AbstractOutOfBoundsMirror(AbstractOutOfBoundsMirror<T> outOfBounds)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected void
checkOutOfBounds()
abstract AbstractOutOfBoundsMirror<T>
copy()
T
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
isOutOfBounds()
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
numDimensions()
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
java.lang.String
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 Detail
-
outOfBoundsRandomAccess
protected final RandomAccess<T> outOfBoundsRandomAccess
-
n
protected final int n
-
dimension
protected final long[] dimension
Dimensions of the wrappedRandomAccessible
.
-
zeroMinPos
protected final long[] zeroMinPos
Position relative to min, for internal calculations. zeroMinPos = position - min.
-
min
protected final long[] min
Minimum of the wrappedRandomAccessible
.
-
p
protected final long[] p
Period 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 Detail
-
AbstractOutOfBoundsMirror
protected AbstractOutOfBoundsMirror(AbstractOutOfBoundsMirror<T> outOfBounds)
-
AbstractOutOfBoundsMirror
public AbstractOutOfBoundsMirror(F f)
-
-
Method Detail
-
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
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.
-
copy
public abstract AbstractOutOfBoundsMirror<T> 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
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 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(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[] 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
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-