OptiX  3.9
NVIDIA OptiX Acceleration Engine
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
optixu_traversal.h
Go to the documentation of this file.
1 
17 /****************************************************************************\
18  *
19  * Traversal API
20  *
21 \****************************************************************************/
22 
23 
24 #ifndef _optixu_optux_traversal_h_
25 #define _optixu_optux_traversal_h_
26 
27 #include "../optix.h"
28 
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32 
37  typedef struct {
38  int prim_id;
39  float t;
41 
42 
52  typedef enum {
56  } RTUquerytype;
57 
62  typedef enum {
66  } RTUrayformat;
67 
75  typedef enum {
79  } RTUtriformat;
80 
95  typedef enum {
100  } RTUinitoptions;
101 
106  typedef enum {
108  RTU_OUTPUT_NORMAL = 1 << 0,
111  } RTUoutput;
112 
118  typedef enum {
120  } RTUoption;
121 
122 
128  typedef struct RTUtraversal_api* RTUtraversal;
129 
130 
146  RTresult RTAPI rtuTraversalCreate( RTUtraversal* traversal,
147  RTUquerytype query_type,
148  RTUrayformat ray_format,
149  RTUtriformat tri_format,
150  unsigned int outputs,
151  unsigned int options,
152  RTcontext context );
153 
167  RTresult RTAPI rtuTraversalGetErrorString( RTUtraversal traversal,
168  RTresult code,
169  const char** return_string);
179  RTresult RTAPI rtuTraversalSetOption( RTUtraversal traversal,
180  RTUoption option,
181  void* value );
182 
199  RTresult RTAPI rtuTraversalSetMesh( RTUtraversal traversal,
200  unsigned int num_verts,
201  const float* verts,
202  unsigned int num_tris,
203  const unsigned* indices );
204 
220  RTresult RTAPI rtuTraversalSetTriangles( RTUtraversal traversal,
221  unsigned int num_tris,
222  const float* tris );
223 
233  RTresult RTAPI rtuTraversalSetAccelData( RTUtraversal traversal,
234  const void* data,
235  RTsize data_size );
236 
245  RTresult RTAPI rtuTraversalGetAccelDataSize( RTUtraversal traversal,
246  RTsize* data_size );
247 
257  RTresult RTAPI rtuTraversalGetAccelData( RTUtraversal traversal,
258  void* data );
259 
273  RTresult RTAPI rtuTraversalMapRays( RTUtraversal traversal,
274  unsigned int num_rays,
275  float** rays );
276 
281  RTresult RTAPI rtuTraversalUnmapRays( RTUtraversal traversal );
282 
291  RTresult RTAPI rtuTraversalPreprocess( RTUtraversal traversal );
292 
300  RTresult RTAPI rtuTraversalTraverse( RTUtraversal traversal );
301 
313  RTresult RTAPI rtuTraversalMapResults( RTUtraversal traversal,
314  RTUtraversalresult** results );
315 
320  RTresult RTAPI rtuTraversalUnmapResults( RTUtraversal traversal );
321 
339  RTresult RTAPI rtuTraversalMapOutput( RTUtraversal traversal,
340  RTUoutput which,
341  void** output );
346  RTresult RTAPI rtuTraversalUnmapOutput( RTUtraversal traversal,
347  RTUoutput which );
356  RTresult RTAPI rtuTraversalDestroy( RTUtraversal traversal );
357 
358 #ifdef __cplusplus
359 } /* extern "C" */
360 #endif
361 
362 #endif /* _optixu_optux_traversal.h */
Definition: optixu_traversal.h:65
Definition: optixu_traversal.h:78
RTUquerytype
The type of ray query to be performed.
Definition: optixu_traversal.h:52
RTresult
Definition: optix_declarations.h:236
Definition: optixu_traversal.h:99
RTresult RTAPI rtuTraversalSetTriangles(RTUtraversal traversal, unsigned int num_tris, const float *tris)
Definition: optixu_traversal.h:76
RTUoutput
RTUoutput requested.
Definition: optixu_traversal.h:106
float t
Definition: optixu_traversal.h:39
RTUtriformat
The input format of the triangles.
Definition: optixu_traversal.h:75
Definition: optixu_traversal.h:53
Definition: optixu_traversal.h:119
RTresult RTAPI rtuTraversalSetOption(RTUtraversal traversal, RTUoption option, void *value)
RTresult RTAPI rtuTraversalUnmapRays(RTUtraversal traversal)
Definition: optixu_traversal.h:54
RTUinitoptions
Initialization options (static across life of traversal object).
Definition: optixu_traversal.h:95
Definition: optixu_traversal.h:109
Definition: optixu_traversal.h:77
Definition: optixu_traversal.h:97
RTresult RTAPI rtuTraversalUnmapOutput(RTUtraversal traversal, RTUoutput which)
Definition: optixu_traversal.h:64
RTresult RTAPI rtuTraversalDestroy(RTUtraversal traversal)
RTUrayformat
The input format of the ray vector.
Definition: optixu_traversal.h:62
struct RTUtraversal_api * RTUtraversal
Definition: optixu_traversal.h:128
RTresult RTAPI rtuTraversalMapRays(RTUtraversal traversal, unsigned int num_rays, float **rays)
Traversal API allowing batch raycasting queries utilizing either OptiX or the CPU.
Definition: optixu_traversal.h:37
Definition: optixu_traversal.h:55
Definition: optixu_traversal.h:98
Definition: optixu_traversal.h:96
int prim_id
Definition: optixu_traversal.h:38
RTresult RTAPI rtuTraversalUnmapResults(RTUtraversal traversal)
RTresult RTAPI rtuTraversalTraverse(RTUtraversal traversal)
RTresult RTAPI rtuTraversalPreprocess(RTUtraversal traversal)
Definition: optixu_traversal.h:108
RTresult RTAPI rtuTraversalGetAccelData(RTUtraversal traversal, void *data)
RTresult RTAPI rtuTraversalCreate(RTUtraversal *traversal, RTUquerytype query_type, RTUrayformat ray_format, RTUtriformat tri_format, unsigned int outputs, unsigned int options, RTcontext context)
Definition: optixu_traversal.h:107
Definition: optixu_traversal.h:110
RTresult RTAPI rtuTraversalMapResults(RTUtraversal traversal, RTUtraversalresult **results)
RTresult RTAPI rtuTraversalSetMesh(RTUtraversal traversal, unsigned int num_verts, const float *verts, unsigned int num_tris, const unsigned *indices)
RTUoption
Runtime options (can be set multiple times for a given traversal object).
Definition: optixu_traversal.h:118
struct RTcontext_api * RTcontext
Definition: optix_host.h:72
RTresult RTAPI rtuTraversalGetAccelDataSize(RTUtraversal traversal, RTsize *data_size)
RTresult RTAPI rtuTraversalMapOutput(RTUtraversal traversal, RTUoutput which, void **output)
RTresult RTAPI rtuTraversalSetAccelData(RTUtraversal traversal, const void *data, RTsize data_size)
RTresult RTAPI rtuTraversalGetErrorString(RTUtraversal traversal, RTresult code, const char **return_string)