plastimatch
Loading...
Searching...
No Matches
ray_trace.h
Go to the documentation of this file.
1/* -----------------------------------------------------------------------
2 See COPYRIGHT.TXT and LICENSE.TXT for copyright and license information
3 ----------------------------------------------------------------------- */
4#ifndef _ray_trace_h_
5#define _ray_trace_h_
6
7#include "plmbase_config.h"
9
10class Volume;
11class Volume_limit;
12
13// #define DRR_VERBOSE 1
14
15#define DRR_PLANE_RAY_TOLERANCE 1e-8
16#define DRR_STRIDE_TOLERANCE 1e-10
17#define DRR_HUGE_DOUBLE 1e10
18#define DRR_TOPLANE_TOLERANCE 1e-7
19#define DRR_BOUNDARY_TOLERANCE 1e-6
20
21/* GCS FIX: "Temporary" fix against overshooting image boundary
22 when ray tracing. This fix should be replaced with something
23 more robust, such as an explicit bounds check. */
24//#define DRR_LEN_TOLERANCE 1e-6
25#define DRR_LEN_TOLERANCE 2e-5
26
27#define DRR_MSD_NUM_BINS 60
28
29#define DRR_PREPROCESS_ATTENUATION 1
30
32 Volume *vol, /* Input: volume */
33 Volume_limit *vol_limit, /* Input: min/max coordinates of volume */
34 Ray_trace_callback callback, /* Input: callback function */
35 void *callback_data, /* Input: callback function private data */
36 double *p1in, /* Input: start point for ray */
37 double *p2in /* Input: end point for ray */
38);
40 Volume *vol, /* Input: volume */
41 Volume_limit *vol_limit, /* Input: min/max coordinates of volume */
42 Ray_trace_callback callback, /* Input: callback function */
43 void *callback_data, /* Input: callback function private data */
44 double *p1in, /* Input: start point for ray */
45 double *p2in, /* Input: end point for ray */
46 float ray_step /* Input: uniform step size */
47);
48
49#endif
Definition volume_limit.h:16
The Volume class represents a three-dimensional volume on a uniform grid. The volume can be located a...
Definition volume.h:38
#define PLMBASE_C_API
Definition plmbase_config.h:18
EXTERNC void ray_trace_uniform(Volume *vol, Volume_limit *vol_limit, Ray_trace_callback callback, void *callback_data, double *p1in, double *p2in, float ray_step)
Definition ray_trace_uniform.cxx:19
EXTERNC void ray_trace_exact(Volume *vol, Volume_limit *vol_limit, Ray_trace_callback callback, void *callback_data, double *p1in, double *p2in)
Definition ray_trace_exact.cxx:97
void(* Ray_trace_callback)(void *callback_data, size_t vox_index, double vox_len, float vox_value)
Definition ray_trace_callback.h:9