Back to home page

EIC code displayed by LXR

 
 

    


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

0001 #pragma once
0002 
0003 struct SOPTIX_BuildInput
0004 {
0005     const char* name = nullptr ; 
0006     OptixBuildInput buildInput = {} ;
0007 
0008     SOPTIX_BuildInput(const char* name); 
0009     std::string desc() const ; 
0010 
0011     bool is_BuildInputTriangleArray() const ; 
0012     bool is_BuildInputCustomPrimitiveArray() const ; 
0013     bool is_BuildInputInstanceArray() const ; 
0014 
0015     unsigned numSbtRecords() const ; 
0016 
0017 };
0018 
0019 
0020 inline SOPTIX_BuildInput::SOPTIX_BuildInput(const char* _name)
0021     :
0022     name(_name)   // HMM: that needs the input name to stay valid
0023 {
0024 }
0025 
0026 inline std::string SOPTIX_BuildInput::desc() const 
0027 {
0028     std::stringstream ss ; 
0029     ss << "[SOPTIX_BuildInput::desc" << std::endl ; 
0030     ss << " name " << ( name ? name : "-" ) << std::endl ; 
0031     if(is_BuildInputTriangleArray())
0032     {
0033         ss <<  SOPTIX_Desc::BuildInputTriangleArray(buildInput) ; 
0034     }
0035     else if(is_BuildInputCustomPrimitiveArray())
0036     {
0037         ss <<  SOPTIX_Desc::BuildInputCustomPrimitiveArray(buildInput) ; 
0038     }
0039     else if(is_BuildInputInstanceArray())
0040     {
0041         ss << SOPTIX_Desc::BuildInputInstanceArray(buildInput) ; 
0042     }
0043     ss << "]SOPTIX_BuildInput::desc" << std::endl ; 
0044     std::string str = ss.str() ; 
0045     return str ; 
0046 }
0047 
0048 inline bool SOPTIX_BuildInput::is_BuildInputTriangleArray() const 
0049 {
0050     return buildInput.type == OPTIX_BUILD_INPUT_TYPE_TRIANGLES ;
0051 } 
0052 inline bool SOPTIX_BuildInput::is_BuildInputCustomPrimitiveArray() const 
0053 {
0054     return buildInput.type == OPTIX_BUILD_INPUT_TYPE_CUSTOM_PRIMITIVES ;
0055 } 
0056 inline bool SOPTIX_BuildInput::is_BuildInputInstanceArray() const 
0057 {
0058     return buildInput.type == OPTIX_BUILD_INPUT_TYPE_INSTANCES ;
0059 }
0060 
0061      
0062 inline unsigned SOPTIX_BuildInput::numSbtRecords() const 
0063 {
0064     unsigned num = 0 ;
0065     switch(buildInput.type)
0066     {
0067         case OPTIX_BUILD_INPUT_TYPE_CUSTOM_PRIMITIVES: num = buildInput.customPrimitiveArray.numSbtRecords ; break ;
0068         case OPTIX_BUILD_INPUT_TYPE_TRIANGLES:         num = buildInput.triangleArray.numSbtRecords        ; break ; 
0069         default:                                                                                           ; break ; 
0070     }
0071     return num ; 
0072 }
0073 
0074