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>, Typed<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.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final long[]Dimensions of the wrappedRandomAccessible.protected final boolean[]protected final boolean[]protected booleanprotected final long[]Minimum of the wrappedRandomAccessible.protected final intprotected final RandomAccess<T> protected final long[]Period of the extended interval.protected final long[]Position relative to min, for internal calculations. -
Constructor Summary
ConstructorsModifierConstructorDescription<F extends Interval & RandomAccessible<T>>protectedAbstractOutOfBoundsMirror(AbstractOutOfBoundsMirror<T> outOfBounds) -
Method Summary
Modifier and TypeMethodDescriptionprotected final voidabstract AbstractOutOfBoundsMirror<T> copy()get()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.getType()Get an instance ofT.booleanTrue if located out of image bounds.voidlocalize(double[] pos) Write the current position into the passed array.voidlocalize(float[] pos) Write the current position into the passed array.voidlocalize(int[] pos) Write the current position into the passed array.voidlocalize(long[] pos) Write the current position into the passed array.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) Override with a more efficient version.voidmove(Localizable localizable) Move the element relative to its current location using anLocalizableas distance vector.intGets the space's number of dimensions.voidsetPosition(int[] position) Set the position of the element.voidsetPosition(int position, int d) Set the position of the element for one dimension.voidsetPosition(long[] position) Set the position of the element.voidsetPosition(Localizable localizable) Place the element at the same location as a givenLocalizabletoString()Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface Localizable
localize, localize, positionAsLongArray, positionAsPointMethods inherited from interface Positionable
bck, fwd, setPositionMethods inherited from interface RandomAccess
copyRandomAccess, setPositionAndGet, setPositionAndGet, setPositionAndGetMethods inherited from interface RealLocalizable
positionAsDoubleArray, positionAsRealPoint
-
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
-
-
Method Details
-
checkOutOfBounds
protected final void checkOutOfBounds() -
numDimensions
public int numDimensions()Description copied from interface:EuclideanSpaceGets the space's number of dimensions.- Specified by:
numDimensionsin interfaceEuclideanSpace
-
isOutOfBounds
public boolean isOutOfBounds()Description copied from interface:BoundedTrue if located out of image bounds.- Specified by:
isOutOfBoundsin interfaceBounded
-
get
-
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
- Specified by:
copyin interfaceOutOfBounds<T>- Specified by:
copyin interfaceRandomAccess<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)
-
localize
public void localize(float[] pos) Description copied from interface:RealLocalizableWrite the current position into the passed array.- Specified by:
localizein interfaceRealLocalizable- Parameters:
pos- receives current position, length must be ≥EuclideanSpace.numDimensions()
-
localize
public void localize(double[] pos) Description copied from interface:RealLocalizableWrite the current position into the passed array.- Specified by:
localizein interfaceRealLocalizable- Parameters:
pos- receives current position, length must be ≥EuclideanSpace.numDimensions()
-
localize
public void localize(int[] pos) Description copied from interface:LocalizableWrite the current position into the passed array.- Specified by:
localizein interfaceLocalizable- Parameters:
pos- receives current position, length must be ≥EuclideanSpace.numDimensions()
-
localize
public void localize(long[] pos) Description copied from interface:LocalizableWrite the current position into the passed array.- Specified by:
localizein interfaceLocalizable- Parameters:
pos- receives current position, length must be ≥EuclideanSpace.numDimensions()
-
getFloatPosition
public float getFloatPosition(int d) Description copied from interface:RealLocalizableReturn 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) Description copied from interface:RealLocalizableReturn the current position in a given dimension.- Specified by:
getDoublePositionin interfaceLocalizable- Specified by:
getDoublePositionin interfaceRealLocalizable- Parameters:
d- dimension- Returns:
- dimension of current position
-
getIntPosition
public int getIntPosition(int d) Description copied from interface:LocalizableReturn 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) Description copied from interface:LocalizableReturn the current position in a given dimension.- Specified by:
getLongPositionin 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:
movein interfacePositionable- Parameters:
distance- relative offset in dimension dd- 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
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 position, int d) Description copied from interface:PositionableSet the position of the element for one dimension.- Specified by:
setPositionin interfacePositionable- Parameters:
position- absolute position in dimension dd- dimension
-
setPosition
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[] position) Description copied from interface:PositionableSet the position of the element.- Specified by:
setPositionin interfacePositionable- Parameters:
position- absolute position, length must be ≥EuclideanSpace.numDimensions()
-
setPosition
public void setPosition(long[] position) Description copied from interface:PositionableSet the position of the element.- Specified by:
setPositionin interfacePositionable- Parameters:
position- absolute position, length must be ≥EuclideanSpace.numDimensions()
-
toString
-