common.in 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #define rotate() pixel.x -= x_center.x; \
  2. pixel.y -= y_center; \
  3. pixel.x = pixel.x * cos_roll + pixel.y * sin_roll; \
  4. pixel.y = -pixel.x * sin_roll + pixel.y * cos_roll; \
  5. pixel.x += x_center.x; \
  6. pixel.y += y_center;
  7. kernel void backproject_burst_{0} (
  8. {1}
  9. global float *volume,
  10. const sampler_t sampler,
  11. const int3 real_size,
  12. const float2 x_center,
  13. const float y_center,
  14. const float2 x_region,
  15. const float2 y_region,
  16. const float2 z_region,
  17. const float2 lamino_region,
  18. float sin_lamino,
  19. float cos_lamino,
  20. const float{2} sines,
  21. const float{2} cosines,
  22. const float norm_factor,
  23. const float sin_roll,
  24. const float cos_roll,
  25. const int cumulate)
  26. {{
  27. int idx = get_global_id (0);
  28. int idy = get_global_id (1);
  29. int idz = get_global_id (2);
  30. float result, tmp, tmp_x, tmp_y;
  31. float2 pixel;
  32. float3 voxel;
  33. if (idx < real_size.x && idy < real_size.y && idz < real_size.z) {{
  34. {3}
  35. if (cumulate) {{
  36. volume[idz * real_size.x * real_size.y + idy * real_size.x + idx] += result * norm_factor;
  37. }} else {{
  38. volume[idz * real_size.x * real_size.y + idy * real_size.x + idx] = result * norm_factor;
  39. }}
  40. }}
  41. }}