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>,Typed<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.
-
-
Field Summary
Fields Modifier and Type Field Description protected long[]dimensionDimensions of the wrappedRandomAccessible.protected boolean[]dimIsOutOfBoundsprotected boolean[]incprotected booleanisOutOfBoundsprotected long[]minMinimum of the wrappedRandomAccessible.protected intnprotected RandomAccess<T>outOfBoundsRandomAccessprotected long[]pPeriod of the extended interval.protected long[]zeroMinPosPosition relative to min, for internal calculations.
-
Constructor Summary
Constructors Modifier Constructor Description AbstractOutOfBoundsMirror(F f)protectedAbstractOutOfBoundsMirror(AbstractOutOfBoundsMirror<T> outOfBounds)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected voidcheckOutOfBounds()abstract AbstractOutOfBoundsMirror<T>copy()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.booleanisOutOfBounds()True 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.intnumDimensions()Gets 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 givenLocalizablejava.lang.StringtoString()-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface net.imglib2.Localizable
localize, localize, positionAsLongArray, positionAsPoint
-
Methods inherited from interface net.imglib2.Positionable
bck, fwd, setPosition
-
Methods inherited from interface net.imglib2.RandomAccess
copyRandomAccess, setPositionAndGet, setPositionAndGet, setPositionAndGet
-
Methods inherited from interface net.imglib2.RealLocalizable
positionAsDoubleArray, positionAsRealPoint
-
-
-
-
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: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
public T get()
Description copied from interface:SamplerAccess 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 abstract AbstractOutOfBoundsMirror<T> 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
public void move(Localizable localizable)
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
public void setPosition(Localizable localizable)
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
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-