=
" // The user program used for picking. \n"
" NV_IDX_DEVICE_INLINE_MEMBER int inquire( \n"
" const Sample_info_self& sample_info, \n"
" Query_results& query_results) \n"
" { \n"
" // write some attribute value of current sample \n"
" const unsigned int attr_idx = 0u; \n"
" const auto& svol = state.self; \n"
" const auto svol_sampler = svol.generate_sampler<float>(attr_idx, \n"
" sample_info.sample_context); \n"
" const float v = svol_sampler.fetch_sample( \n"
" sample_info.sample_position_object_space); \n"
" query_results.write_value<float>(0u /*user_value_idx*/, v); \n"
" \n"
" counter += 1; \n"
" if (counter & 1) { \n"
" // write every other counter as user value \n"
" query_results.write_value<int>(1u /*user_value_idx*/, counter); \n"
" } \n"
" \n"
" const float3 normal = sample_info.scene_position; \n"
" query_results.write_value<float3>(2u /*user_value_idx*/, normal); \n"
" \n"
" return NV_IDX_PROG_OK; \n"
" \n"
" // we can stop sampling: \n"
" //return NV_IDX_PROG_TERMINATE_PROGRAM_INSTANCE; \n"
" } \n"