@Override public int map( final T type ) { return type.getInteger() - minVal; } }
/** * Create an IntBinMapper with the given minimum and maximum bins. * @param min the minimum bin center. * @param max the maximum bin center. */ public IntBinMapper(final T min, final T max) { minType = min; maxType = max; numBins = max.getInteger() - min.getInteger() + 1; minVal = min.getInteger(); }
@Override public int map(final T type) { return type.getInteger() - minVal; } }
@Override public boolean equals( final Object obj ) { if ( obj instanceof LabelingType ) { @SuppressWarnings( "unchecked" ) final LabelingType< T > c = ( LabelingType< T > ) obj; if ( c.mapping == mapping ) return c.type.getInteger() == type.getInteger(); } return mapping.setAtIndex( type.getInteger() ).set.equals( obj ); }
@Override public boolean contains( final Object label ) { return mapping.setAtIndex( type.getInteger() ).set.contains( label ); }
@Override public boolean containsAll( final Collection< ? > labels ) { return mapping.setAtIndex( type.getInteger() ).set.containsAll( labels ); }
@Override public boolean isEmpty() { return mapping.setAtIndex( type.getInteger() ).set.isEmpty(); }
@Override public String toString() { return mapping.setAtIndex( type.getInteger() ).set.toString(); }
@Override public int size() { return mapping.setAtIndex( type.getInteger() ).set.size(); }
@Override public Object[] toArray() { return mapping.setAtIndex( type.getInteger() ).set.toArray(); }
@Override public < T1 > T1[] toArray( final T1[] a ) { return mapping.setAtIndex( type.getInteger() ).set.toArray( a ); }
@Override public boolean add( final T label ) { final int index = type.getInteger(); final int newindex = mapping.addLabelToSetAtIndex( label, index ).index; if ( newindex == index ) return false; type.setInteger( newindex ); generation.modCount++; return true; }
@Override public void clear() { final int index = type.getInteger(); final int newindex = mapping.emptySet().index; if ( newindex != index ) { type.setInteger( newindex ); generation.modCount++; } }
@SuppressWarnings( "unchecked" ) @Override public boolean remove( final Object label ) { final int index = type.getInteger(); final int newindex = mapping.removeLabelFromSetAtIndex( ( T ) label, index ).index; if ( newindex == index ) return false; type.setInteger( newindex ); generation.modCount++; return true; }
public void relabel() { for ( final L label : Views.iterable( output ) ) label.setInteger( canonicalLabels.get( label.getInteger() ) ); } }
@Override public void set( final LabelingType< T > c ) { if ( c.mapping == mapping ) type.setInteger( c.type.getInteger() ); else type.setInteger( mapping.intern( c ).index ); generation.modCount++; }
private void collectUnchecked( final RandomAccess< L > la, final TIntArrayList neighborLabels ) { neighborLabels.clear(); for ( int i = 0; i < offsets.length; ++i ) { la.move( offsets[ i ] ); final int l = la.get().getInteger(); if ( l != 0 ) neighborLabels.add( l ); } la.move( pos ); }
private void collectAtPreviousFragmentBorderUnchecked( final RandomAccess< L > la, final TIntArrayList neighborLabels ) { neighborLabels.clear(); for ( int i = 0; i < numPreviousFragmentOffsets; ++i ) { la.move( offsets[ i ] ); final int l = la.get().getInteger(); if ( l != 0 ) neighborLabels.add( l ); } la.move( previousFragmentPos ); }
@Override public void collectAtPreviousFragmentBorder( final RandomAccess< L > la, final TIntArrayList neighborLabels, final long[] labelsMin, final long[] labelsMax ) { neighborLabels.clear(); la.bck( n - 1 ); final int l = la.get().getInteger(); if ( l != 0 ) neighborLabels.add( l ); la.fwd( n - 1 ); } }
public static < T extends NativeType< T > & IntegerType< T > > void testRange( final ArrayImg< T, ? > comp, final ArrayImg< T, ? > ref, final int start, final int stop ) { final ArrayCursor< T > c = comp.cursor(); final ArrayCursor< T > r = ref.cursor(); for ( int s = start; s < stop; ++s ) { Assert.assertEquals( c.next().getInteger(), s ); Assert.assertEquals( r.next().getInteger(), s ); } }