piv-nodes.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #ifndef PIV_NODES_H
  2. #define PIV_NODES_H
  3. #include <ufo/ufo.h>
  4. #define PIV_COPY_TASK_NODE(dst, src1, src2) \
  5. (((dst) = UFO_TASK_NODE (ufo_node_copy(UFO_NODE (src1), (src2)))));
  6. struct piv_ufo_base;
  7. struct piv_nodes
  8. {
  9. UfoTaskNode *denoise;
  10. UfoTaskNode *contrast;
  11. /* Add broadcast plugins to attach to dump_rings wihch writes rings to a new
  12. * image and a new contrast to be sent to the azimuthal checker */
  13. UfoTaskNode *broadcast_contrast;
  14. UfoTaskNode *broadcast_reader;
  15. UfoTaskNode *copy_replicater;
  16. UfoTaskNode *replicater;
  17. UfoTaskNode *replicate_reader;
  18. UfoTaskNode *duplicater;
  19. UfoTaskNode *ring_pattern;
  20. UfoTaskNode *ordfilt;
  21. UfoTaskNode *filter_particle;
  22. UfoTaskNode *concatenate_result;
  23. UfoTaskNode *get_dup_circ;
  24. UfoTaskNode *remove_circle;
  25. UfoTaskNode *multi_search;
  26. UfoTaskNode *dump_ring;
  27. UfoTaskNode *fftmult;
  28. // Plugin can be used to divide image by 4
  29. UfoTaskNode *reduce;
  30. UfoTaskNode *writer;
  31. UfoTaskNode *ringwriter;
  32. UfoTaskNode *fft;
  33. UfoTaskNode *ringfft;
  34. UfoTaskNode *loop_ringfft;
  35. UfoTaskNode *ringifft;
  36. UfoTaskNode *ifft;
  37. // The gpu node that processes this structure
  38. UfoNode *proc_node;
  39. };
  40. struct piv_nodes * piv_nodes_copy(struct piv_nodes *src);
  41. void piv_nodes_init(struct piv_nodes *piv, struct piv_ufo_base *b);
  42. void piv_nodes_unref(struct piv_nodes *piv);
  43. void piv_nodes_set_gpu(struct piv_nodes *piv, UfoNode *proc_node);
  44. #endif /* PIV_NODES_H */