OptiX-Based Code
  Description
Collaboration diagram for OptiX-Based Code:

| Classes | |
| struct | AreaLight | 
| The different types of area lights that can exist in our current models.  More... | |
| struct | PointLight | 
| Packed parameters of a point light.  More... | |
| struct | CameraMissParameters | 
| The parameters associated with camera miss data. A.K.A background data.  More... | |
| struct | MissParameters | 
| The parameters for a camera miss record.  More... | |
| struct | LensParams | 
| Inverse lens param for modeling polynomial forward model.  More... | |
| struct | CameraParameters | 
| The parameters needed to define a camera.  More... | |
| struct | SemanticCameraParameters | 
| Parameters need to define a camera that generates semantic segmentation data.  More... | |
| struct | LidarParameters | 
| Parameters used to define a lidar.  More... | |
| struct | RadarParameters | 
| Parameters used to define a radar.  More... | |
| struct | RaygenParameters | 
| Parameters for specifying raygen programs.  More... | |
| struct | MeshParameters | 
| All the data to specific a triangle mesh.  More... | |
| struct | MaterialParameters | 
| All parameters for specifying a material in optix.  More... | |
| struct | ContextParameters | 
| Parameters associated with the entire optix scene.  More... | |
| struct | MaterialRecordParameters | 
| Parameters associated with a single object in the scene. Padding added during record creation.  More... | |
| struct | PerRayData_camera | 
| Data associated with a single camera ray.  More... | |
| struct | PerRayData_semantic | 
| Data associated with a single segmentation camera ray.  More... | |
| struct | PerRayData_shadow | 
| Data associated with a single shadow ray.  More... | |
| struct | PerRayData_lidar | 
| Data associated with a single lidar ray.  More... | |
| struct | PerRayData_radar | 
| Data associated with a single radar ray.  More... | |
| class | chrono::sensor::ChOptixEngine | 
| Optix Engine that is responsible for managing all render-based sensors.  More... | |
| struct | chrono::sensor::Transform | 
| Transform struct for packing a translation, rotation, and scale.  More... | |
| class | chrono::sensor::ChOptixGeometry | 
| Optix Geometry class that is responsible for managing all geometric information in the optix scene This handles the acceleration structure and transforms.  More... | |
| class | chrono::sensor::ChOptixPipeline | 
| Class to hold all the Shader Binding Table parameters adnd manage the ray tracing pipeline, materials, ray gen programs.  More... | |
| struct | chrono::sensor::ProgramString | 
| holds string values for ptx file and ray generation program  More... | |
| struct | chrono::sensor::ByteImageData | 
| stores image data  More... | |
| Macros | |
| #define | OPTIX_ERROR_CHECK(result) | 
| Checks the output of an optix call for any error, will throw a runtime error if not success.  More... | |
| #define | CUDA_ERROR_CHECK(result) | 
| Checks the output of a cuda call for any error, will throw a runtime error if not success.  More... | |
| Functions | |
| void | chrono::sensor::GetShaderFromFile (OptixDeviceContext context, OptixModule &module, const std::string &file_name, OptixModuleCompileOptions &module_compile_options, OptixPipelineCompileOptions &pipeline_compile_options) | 
| launches ray generation program  More... | |
| void | chrono::sensor::optix_log_callback (unsigned int level, const char *tag, const char *message, void *) | 
| ByteImageData | chrono::sensor::LoadByteImage (const std::string &filename) | 
| loads image to struct ByteImageData, returns an empty struct with 0 values if loading failed  More... | |
| void | chrono::sensor::SetSensorShaderDir (const std::string &path) | 
| const std::string & | chrono::sensor::GetSensorShaderDir () | 
Macro Definition Documentation
◆ CUDA_ERROR_CHECK
| #define CUDA_ERROR_CHECK | ( | result | ) | 
Value:
{                                                                                                \
        if (result != cudaSuccess) {                                                                 \
            std::string error_name = std::string(cudaGetErrorName(result));                          \
            std::string error_string = std::string(cudaGetErrorString(result));                      \
            std::string file = std::string(__FILE__);                                                \
            std::string line = std::to_string(__LINE__);                                             \
            throw std::runtime_error(error_name + ": " + error_string + " at " + file + ":" + line); \
        }                                                                                            \
    }
Checks the output of a cuda call for any error, will throw a runtime error if not success.
◆ OPTIX_ERROR_CHECK
| #define OPTIX_ERROR_CHECK | ( | result | ) | 
Value:
{                                                                                                \
        if (result != OPTIX_SUCCESS) {                                                               \
            std::string error_name = std::string(optixGetErrorName(result));                         \
            std::string error_string = std::string(optixGetErrorString(result));                     \
            std::string file = std::string(__FILE__);                                                \
            std::string line = std::to_string(__LINE__);                                             \
            throw std::runtime_error(error_name + ": " + error_string + " at " + file + ":" + line); \
        }                                                                                            \
    }
Checks the output of an optix call for any error, will throw a runtime error if not success.
Enumeration Type Documentation
◆ BackgroundMode
| 
 | strong | 
◆ CameraLensModelType
| enum CameraLensModelType | 
◆ LidarBeamShape
| 
 | strong | 
◆ PipelineType
| 
 | strong | 
◆ RadarReturnMode
| 
 | strong | 
◆ RayType
| enum RayType | 
Function Documentation
◆ GetShaderFromFile()
| CH_SENSOR_API void chrono::sensor::GetShaderFromFile | ( | OptixDeviceContext | context, | 
| OptixModule & | module, | ||
| const std::string & | file_name, | ||
| OptixModuleCompileOptions & | module_compile_options, | ||
| OptixPipelineCompileOptions & | pipeline_compile_options | ||
| ) | 
launches ray generation program
- Parameters
- 
  context optix device context module optix module that will be created file_name the file where the shader program is implemented module_compile_options compile options for the module pipeline_compile_options compile options for the pipeline 
◆ LoadByteImage()
| CH_SENSOR_API ByteImageData chrono::sensor::LoadByteImage | ( | const std::string & | filename | ) | 
loads image to struct ByteImageData, returns an empty struct with 0 values if loading failed
- Parameters
- 
  filename 
