@Override public NLinearInterpolator< T > copy() { return new NLinearInterpolator< T >( this ); }
@Override public NLinearInterpolator< T > copy() { return new NLinearInterpolator< T >( this ); }
@Override public NLinearInterpolator< T > create( final RandomAccessible< T > randomAccessible ) { switch ( randomAccessible.numDimensions() ) { case 1: return new NLinearInterpolator1D< T >( randomAccessible ); case 2: return new NLinearInterpolator2D< T >( randomAccessible ); // case 3: // return new NLinearInterpolator3D< T >( randomAccessible ); default: return new NLinearInterpolator< T >( randomAccessible ); } }
@Override public NLinearInterpolator< T > create( final RandomAccessible< T > randomAccessible ) { switch ( randomAccessible.numDimensions() ) { case 1: return new NLinearInterpolator1D< T >( randomAccessible ); case 2: return new NLinearInterpolator2D< T >( randomAccessible ); // case 3: // return new NLinearInterpolator3D< T >( randomAccessible ); default: return new NLinearInterpolator< T >( randomAccessible ); } }
@SuppressWarnings( { "unchecked", "rawtypes" } ) @Override public RealRandomAccess< T > create( final RandomAccessible< T > randomAccessible ) { final T type = randomAccessible.randomAccess().get(); if ( type instanceof RealType ) { if ( type instanceof Volatile ) return new ClampingNLinearInterpolatorVolatileRealType( randomAccessible ); else return new ClampingNLinearInterpolatorRealType( randomAccessible ); } else if ( ARGBType.class.isInstance( type ) ) { return ( RealRandomAccess ) new NLinearInterpolatorARGB( ( RandomAccessible ) randomAccessible ); } else if ( VolatileARGBType.class.isInstance( type ) ) { return ( RealRandomAccess ) new ClampingNLinearInterpolatorVolatileARGB< VolatileARGBType >( ( RandomAccessible ) randomAccessible ); } else // fall back to (non-clamping) NLinearInterpolator return new NLinearInterpolator<>( randomAccessible ); }
@SuppressWarnings( { "unchecked", "rawtypes" } ) @Override public RealRandomAccess< T > create( final RandomAccessible< T > randomAccessible ) { final T type = randomAccessible.randomAccess().get(); if ( type instanceof RealType ) { if ( type instanceof Volatile ) return new ClampingNLinearInterpolatorVolatileRealType( randomAccessible ); else return new ClampingNLinearInterpolatorRealType( randomAccessible ); } else if ( ARGBType.class.isInstance( type ) ) { return ( RealRandomAccess ) new NLinearInterpolatorARGB( ( RandomAccessible ) randomAccessible ); } else if ( VolatileARGBType.class.isInstance( type ) ) { return ( RealRandomAccess ) new ClampingNLinearInterpolatorVolatileARGB< VolatileARGBType >( ( RandomAccessible ) randomAccessible ); } else // fall back to (non-clamping) NLinearInterpolator return new NLinearInterpolator<>( randomAccessible ); }