#pragma once

#include <stk/image/volume.h>

namespace stk {
    class GpuVolume;
    
namespace gpu {
    // Normalizes a scalar volume to the specified range
    // An optional output volume parameter ('out') can be passed to the function.
    //  If provided, the results will be written to 'out'. This assumes that 'out'
    //  has the same dimensions as 'src'. If not, a new volume is allocated.
    GpuVolume normalize(
        const GpuVolume& src, 
        float min, 
        float max, 
        GpuVolume* out=nullptr,
        const dim3& block_size = {32, 32, 1}
    );
}
}

