     if (line >= to)
         return;
 
-    float cur[4] = { c_start[0], c_start[1], c_start[2], c_start[3] };
-
     // initialise intermediate image line
     __shared__ extern uchar4 imgLine[];
     for (int ix=threadIdx.x; ix<width; ix+=blockDim.x)

    for (int slice=firstSlice; slice!=lastSlice; slice += sliceStep)
    {
        // compute upper left image corner
        const float w1 = 1.f/cur[3];
        const int iPosX = int(cur[0]*w1+0.5f);
        const int iPosY = int(cur[1]*w1+0.5f);
        cur[0] += c_inc[0];
        cur[1] += c_inc[1];
        cur[3] += c_inc[3];

        if(line < iPosY)
            continue;

#include "vvcuda.h"
#include "vvcudapar.h"

const int MAX_SLICES = 512;

__constant__ int   c_vox[5];
__constant__ float2 c_start[MAX_SLICES];
static float2 h_start[MAX_SLICES];

texture<uchar4, 1, cudaReadModeNormalizedFloat> tex_tf;

