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)
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