Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-09 07:49:00

0001 #pragma once
0002 #include <stdint.h>
0003 #include <vector_types.h>
0004 
0005 /**
0006 TODO: try removing the placeholders
0007 
0008 **/
0009 
0010 struct RaygenData
0011 {
0012     float placeholder ;
0013 };
0014 
0015 struct MissData
0016 {
0017     float r, g, b;
0018 };
0019 
0020 
0021 struct CustomPrim
0022 {
0023     int numNode ;
0024     int nodeOffset ;
0025     int globalPrimIdx ;
0026 };
0027 
0028 struct TriMesh
0029 {
0030     unsigned boundary ;
0031     uint3*  indice ;  // indices of triangle vertices and normal
0032     float3* vertex ;
0033     float3* normal ;
0034     int globalPrimIdx ;
0035 };
0036 
0037 
0038 struct HitGroupData
0039 {
0040     union
0041     {
0042         CustomPrim prim ;
0043         TriMesh    mesh ;
0044     };
0045 };
0046 
0047 
0048 
0049 
0050 #if defined(__CUDACC__) || defined(__CUDABE__)
0051 #else
0052 #include <optix_types.h>
0053 
0054 template <typename T>
0055 struct SbtRecord
0056 {
0057     __align__( OPTIX_SBT_RECORD_ALIGNMENT ) char header[OPTIX_SBT_RECORD_HEADER_SIZE];
0058     T data;
0059 };
0060 
0061 typedef SbtRecord<RaygenData>     Raygen ;
0062 typedef SbtRecord<MissData>       Miss ;
0063 typedef SbtRecord<HitGroupData>   HitGroup ;
0064 
0065 #endif
0066