StatisticsVector StatisticsVector::make( const string& name, const Statistics& stats) { StatisticsVector vec; vec.insert(name, stats); return vec; }
StatisticsVector Intersector::get_statistics() const { const uint64 total_ray_count = m_shading_ray_count + m_probe_ray_count; Statistics intersection_stats; intersection_stats.insert<uint64>("total rays", total_ray_count); intersection_stats.insert( auto_ptr<RayCountStatisticsEntry>( new RayCountStatisticsEntry( "shading rays", m_shading_ray_count, total_ray_count))); intersection_stats.insert( auto_ptr<RayCountStatisticsEntry>( new RayCountStatisticsEntry( "probe rays", m_probe_ray_count, total_ray_count))); StatisticsVector vec; vec.insert("intersection statistics", intersection_stats); #ifdef FOUNDATION_BVH_ENABLE_TRAVERSAL_STATS vec.insert( "assembly tree intersection statistics", m_assembly_tree_traversal_stats.get_statistics()); vec.insert( "triangle tree intersection statistics", m_triangle_tree_traversal_stats.get_statistics()); #endif vec.insert( "region tree access cache statistics", make_dual_stage_cache_stats(m_region_tree_cache)); vec.insert( "triangle tree access cache statistics", make_dual_stage_cache_stats(m_triangle_tree_cache)); vec.insert( "region kit access cache statistics", make_dual_stage_cache_stats(m_region_kit_cache)); vec.insert( "tessellation access cache statistics", make_dual_stage_cache_stats(m_tess_cache)); return vec; }