 
   rc.intr = intr;
 
+  rc.shift = shift;
+
   rc.volume = volume;
   rc.vmap = vmap;
   rc.nmap = nmap;
+
+  
 
   dim3 block (RayCaster::CTA_SIZE_X, RayCaster::CTA_SIZE_Y);
   dim3 grid (divUp (rc.cols, block.x), divUp (rc.rows, block.y));

        ray_dir.z = (ray_dir.z == 0.f) ? 1e-15 : ray_dir.z;

        // computer time when entry and exit volume
        float time_start_volume = getMinTime (volume_size, ray_start, ray_dir, cell_size);
        float time_exit_volume = getMaxTime (volume_size, ray_start, ray_dir, cell_size);

        const float min_dist = 0.f;         //in meters
        time_start_volume = fmax (time_start_volume, min_dist);

      PtrStep<short2> volume;

      Intr intr;

      int3 shift;

      mutable PtrStep<float> nmap;
      mutable PtrStep<float> vmap;
