74 |
typedef Diderot_vec3_t Diderot_Mat3x3_t[3]; // represented as row vectors |
typedef Diderot_vec3_t Diderot_Mat3x3_t[3]; // represented as row vectors |
75 |
typedef Diderot_vec4_t Diderot_Mat4x4_t[4]; // represented as row vectors |
typedef Diderot_vec4_t Diderot_Mat4x4_t[4]; // represented as row vectors |
76 |
|
|
77 |
|
// GPU-side image types. Note that these should have the same organization as |
78 |
|
// the Shadow_image[123]D_t types defined in shadow-types.h |
79 |
|
|
80 |
typedef struct { // wrapper for 1D image data |
typedef struct { // wrapper for 1D image data |
|
uint dim; // dimension (== 1) |
|
|
uint size[1]; |
|
81 |
__global void *data; |
__global void *data; |
82 |
|
uint size[1]; |
83 |
Diderot_real_t s; // scaling from world-space to image-space |
Diderot_real_t s; // scaling from world-space to image-space |
84 |
Diderot_real_t t; // translation from world-space to image-space |
Diderot_real_t t; // translation from world-space to image-space |
85 |
} Diderot_image1D_t; |
} Diderot_image1D_t; |
86 |
|
|
87 |
typedef struct { // wrapper for 2D image data |
typedef struct { // wrapper for 2D image data |
|
uint dim; // dimension (== 2) |
|
|
uint size[2]; // sizes (fast to slow) |
|
88 |
__global void *data; |
__global void *data; |
89 |
|
uint size[2]; // sizes (fast to slow) |
90 |
Diderot_Mat2x2_t w2i; // affine tranform from world space to index space. This is the |
Diderot_Mat2x2_t w2i; // affine tranform from world space to index space. This is the |
91 |
// inverse of the index to world-space transform that is loaded from |
// inverse of the index to world-space transform that is loaded from |
92 |
// the Nrrd file. |
// the Nrrd file. |
95 |
} Diderot_image2D_t; |
} Diderot_image2D_t; |
96 |
|
|
97 |
typedef struct { // wrapper for 3D image data |
typedef struct { // wrapper for 3D image data |
|
uint dim; // dimension (== 3) |
|
|
uint size[3]; // sizes (fast to slow) |
|
98 |
__global void *data; |
__global void *data; |
99 |
|
uint size[3]; // sizes (fast to slow) |
100 |
Diderot_Mat3x3_t w2i; // affine tranform from world space to index space. This is the |
Diderot_Mat3x3_t w2i; // affine tranform from world space to index space. This is the |
101 |
// inverse of the index to world-space transform that is loaded from |
// inverse of the index to world-space transform that is loaded from |
102 |
// the Nrrd file. |
// the Nrrd file. |