@Override public long max( final int d ) { return structuringElementBoundingBox.max( d ); }
@Override public long max( final int d ) { return sourceInterval.max( d ); }
@Override public void max( final long[] max ) { sourceInterval.max( max ); }
@Override public void max( final Positionable max ) { sourceInterval.max( max ); } }
@Override public void setPosition( final int[] position ) { for ( int d = 0; d < n; ++d ) { currentPos[ d ] = position[ d ]; currentMin[ d ] = position[ d ] + span.min( d ); currentMax[ d ] = position[ d ] + span.max( d ); } }
@Override public void setPosition( final int[] position ) { for ( int d = 0; d < n; ++d ) { currentPos[ d ] = position[ d ]; currentMin[ d ] = position[ d ] + span.min( d ); currentMax[ d ] = position[ d ] + span.max( d ); } }
@Override public void setPosition( final long[] position ) { for ( int d = 0; d < n; ++d ) { currentPos[ d ] = position[ d ]; currentMin[ d ] = position[ d ] + span.min( d ); currentMax[ d ] = position[ d ] + span.max( d ); } }
@Override public boolean isPresent( final int t ) { return interval.min( 3 ) <= t && t <= interval.max( 3 ); }
@Override public void setPosition( final Localizable localizable ) { for ( int d = 0; d < n; ++d ) { final long position = localizable.getLongPosition( d ); currentPos[ d ] = position; currentMin[ d ] = position + span.min( d ); currentMax[ d ] = position + span.max( d ); } }
@Override public void setPosition( final Localizable localizable ) { for ( int d = 0; d < n; ++d ) { final long position = localizable.getLongPosition( d ); currentPos[ d ] = position; currentMin[ d ] = position + span.min( d ); currentMax[ d ] = position + span.max( d ); } }
/** * Creates a {@link AbstractInterval} from another {@link Interval} * * @param interval * - another {@link Interval} */ public AbstractInterval( final Interval interval ) { this( interval.numDimensions() ); interval.min( min ); interval.max( max ); }
public static Interval scaleBoundingBox( final Interval boundingBox, final double[] factors ) { final int n = boundingBox.numDimensions(); final long[] min = new long[ n ]; final long[] max = new long[ n ]; for ( int d = 0; d < min.length; ++ d ) { min[ d ] = Math.round( boundingBox.min( d ) * factors[d] ); max[ d ] = Math.round( boundingBox.max( d ) * factors[d] ); } return new FinalInterval( min, max ); }
public BoundingBox( final Interval interval ) { this.n = interval.numDimensions(); this.corner1 = new long[ n ]; this.corner2 = new long[ n ]; interval.min( corner1 ); interval.max( corner2 ); }
/** * Tests weather two intervals are equal in their min / max */ public static boolean equals( final Interval a, final Interval b ) { if ( a.numDimensions() != b.numDimensions() ) return false; for ( int d = 0; d < a.numDimensions(); ++d ) if ( a.min( d ) != b.min( d ) || a.max( d ) != b.max( d ) ) return false; return true; }
public < F extends Interval & RandomAccessible< T > > AbstractOutOfBoundsValue( final F f ) { super( f.numDimensions() ); this.sampler = f.randomAccess(); dimension = new long[ n ]; f.dimensions( dimension ); min = new long[ n ]; f.min( min ); max = new long[ n ]; f.max( max ); dimIsOutOfBounds = new boolean[ n ]; }
public < F extends Interval & RandomAccessible< T > > AbstractOutOfBoundsValue( final F f ) { super( f.numDimensions() ); this.sampler = f.randomAccess(); dimension = new long[ n ]; f.dimensions( dimension ); min = new long[ n ]; f.min( min ); max = new long[ n ]; f.max( max ); dimIsOutOfBounds = new boolean[ n ]; }
public BoundingBox( final Interval interval ) { this.min = new int[ interval.numDimensions() ]; this.max = new int[ interval.numDimensions() ]; for ( int d = 0; d < interval.numDimensions(); ++d ) { min[ d ] = (int)interval.min( d ); max[ d ] = (int)interval.max( d ); } this.title = "DefaultBoundingBox"; }
public static long numPixels( final Interval bb, final double downsampling ) { final long[] min = new long[ bb.numDimensions() ]; final long[] max = new long[ bb.numDimensions() ]; bb.min( min ); bb.max( max ); return numPixels( min, max, downsampling ); }
/** * Returns true if the provided axes correspond to a complete image plane */ public static boolean wholePlane(final int imageIndex, final Metadata meta, final Interval bounds) { final boolean wholePlane = wholeRow(imageIndex, meta, bounds); final int yIndex = meta.get(imageIndex).getAxisIndex(Axes.Y); return wholePlane && bounds.min(yIndex) == 0 && bounds.max(yIndex) == meta.get(imageIndex).getAxisLength(Axes.Y) - 1; }