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