1mlib_VolumeRayCast_General(m3eMdLiIaBL)ib Library Funmcltiibo_nVsolumeRayCast_General(3MLIB)
2
3
4
6 mlib_VolumeRayCast_General, mlib_VolumeRayCast_General_Parallel_Near‐
7 est_U8_Bit, mlib_VolumeRayCast_General_Parallel_Nearest_U8_U8,
8 mlib_VolumeRayCast_General_Parallel_Nearest_S16_S16, mlib_VolumeRay‐
9 Cast_General_Parallel_Trilinear_U8_U8, mlib_VolumeRayCast_General_Par‐
10 allel_Trilinear_S16_S16, mlib_VolumeRayCast_General_Divergent_Near‐
11 est_U8_Bit, mlib_VolumeRayCast_General_Divergent_Nearest_U8_U8,
12 mlib_VolumeRayCast_General_Divergent_Nearest_S16_S16, mlib_VolumeRay‐
13 Cast_General_Divergent_Trilinear_U8_U8, mlib_VolumeRayCast_Gen‐
14 eral_Divergent_Trilinear_S16_S16 - cast a ray (or rays) through a 3D
15 data set
16
18 cc [ flag... ] file... -lmlib [ library... ]
19 #include <mlib.h>
20
21 mlib_status mlib_VolumeRayCast_General_Parallel_Nearest_U8_Bit(
22 mlib_rays *rays, const mlib_genvolume *vol, void *buffer);
23
24
25 mlib_status mlib_VolumeRayCast_General_Parallel_Nearest_U8_U8(
26 mlib_rays *rays, const mlib_genvolume *vol, void *buffer);
27
28
29 mlib_status mlib_VolumeRayCast_General_Parallel_Nearest_S16_S16(
30 mlib_rays *rays, const mlib_genvolume *vol, void *buffer);
31
32
33 mlib_status mlib_VolumeRayCast_General_Parallel_Trilinear_U8_U8(
34 mlib_rays *rays, const mlib_genvolume *vol, void *buffer);
35
36
37 mlib_status mlib_VolumeRayCast_General_Parallel_Trilinear_S16_S16(
38 mlib_rays *rays, const mlib_genvolume *vol, void *buffer);
39
40
41 mlib_status mlib_VolumeRayCast_General_Divergent_Nearest_U8_Bit(
42 mlib_rays *rays, const mlib_genvolume *vol, void *buffer);
43
44
45 mlib_status mlib_VolumeRayCast_General_Divergent_Nearest_U8_U8(
46 mlib_rays *rays, const mlib_genvolume *vol, void *buffer);
47
48
49 mlib_status mlib_VolumeRayCast_General_Divergent_Nearest_S16_S16(
50 mlib_rays *rays, const mlib_genvolume *vol, void *buffer);
51
52
53 mlib_status mlib_VolumeRayCast_General_Divergent_Trilinear_U8_U8(
54 mlib_rays *rays, const mlib_genvolume *vol, void *buffer);
55
56
57 mlib_status mlib_VolumeRayCast_General_Divergent_Trilinear_S16_S16(
58 mlib_rays *rays, const mlib_genvolume *vol, void *buffer);
59
60
62 Each of these functions casts a ray (or rays) through a three-dimen‐
63 sional (3D) data set, then computes and returns the interpolated sam‐
64 ples at each step along the way.
65
66
67 In trilinear interpolation, the value at point P is computed from its
68 eight surrounding neighbors based on the equation below.
69
70 P = (1-a)*(1-b)*(1-c)*P0 +
71 a*(1-b)*(1-c)*Px + (1-a)*b*(1-c)*Py + (1-a)*(1-b)*c*Pz +
72 a*b*(1-c)*Pxy + a*(1-b)*c*Pxz + (1-a)*b*c*Pyz +
73 a*b*c*Pxyz
74
75
76
77 where a, b, and c are the fractional parts of the coordinates of point
78 P.
79
80
81 The trilinear interpolation is represented by the following figure:
82
83 Printed copy or docs.sun.com displays a figure that represents the tri‐
84 linear interpolation.
85
86
87 In nearest neighbor operation, the sample value at point P is replaced
88 by the value of the nearest neighbor voxel.
89
91 Each of the functions takes the following arguments:
92
93 rays Casting rays.
94
95
96 vol Volume data that consists of slices.
97
98
99 buffer Working buffer.
100
101
103 Each of the functions returns MLIB_SUCCESS if successful. Otherwise it
104 returns MLIB_FAILURE.
105
107 See attributes(5) for descriptions of the following attributes:
108
109
110
111
112 ┌─────────────────────────────┬─────────────────────────────┐
113 │ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
114 ├─────────────────────────────┼─────────────────────────────┤
115 │Interface Stability │Committed │
116 ├─────────────────────────────┼─────────────────────────────┤
117 │MT-Level │MT-Safe │
118 └─────────────────────────────┴─────────────────────────────┘
119
121 mlib_VolumeRayCast_Blocked(3MLIB), attributes(5)
122
123
124
125SunOS 5.11 2 Mar 2007 mlib_VolumeRayCast_General(3MLIB)